Bug #2152

DFBSD v2.12.0.4.g2a52d-RELEASE - panic: assertion "curthread->td_critcount" failed in lwkt_process_ipiq_core

Added by tuxillo about 3 years ago. Updated about 3 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Hi,

Host uptime was 8 days. I started a vkernel and I had a panic without dump:

panic: assertion "curthread->td_critcount" failed in lwkt_process_ipiq_core at
/home/source/dfbsd/sys/kern/lwkt_ipiq.c:588
cpuid = 0
Trace beginning at frame 0xdb4fcc18
panic(ffffffff,0,c06d6790,db4fcc4c,daea82d8) at panic+0x198
panic(c06d6790,c06bd053,c067e00c,c06ffa9c,24c) at panic+0x198
lwkt_process_ipiq_core(1,ff800110,c55d6000,c58dabf8,db5f8678) at
lwkt_process_ipiq_core+0x4c
lwkt_process_ipiq(c58dabf8,db4fccc0,c064a2f6,c58dabf8,d7b97de8) at
lwkt_process_ipiq+0x59
pmap_interlock_wait(c58dabf8,d7b97de8,d57c6e20,db4fcd40,db4fcce8) at
pmap_interlock_wait+0x17
pmap_setlwpvm(de860f78,c58dabf8,db5f8678,1,80c6d84) at pmap_setlwpvm+0x59
vkernel_trap(de860f78,db4fcd40,db4fcd40,c0385c9f,5535f5ec) at vkernel_trap+0x97
trap(db4fcd40) at trap+0x7e1
calltrap() at calltrap+0xd
--- trap 0x4, eip = 0x80c6d84, esp = 0xdb4fcd84, ebp = 0x2 ---
boot() called on cpu#0
Uptime: 8d19h25m1s

Cheers,
Antonio Huete

History

#1 Updated by tuxillo about 3 years ago

I've noticed that lwkt_process_ipiq uses to be called within a critical section,
but that doesn't happen in pmap_interlock_wait. Is there any reason for that?

3485 void
3486 pmap_interlock_wait(struct vmspace *vm)
3487 {
3488 struct pmap *pmap = &vm->vm_pmap;
3489
3490 if (pmap->pm_active & CPUMASK_LOCK) {
3491 DEBUG_PUSH_INFO("pmap_interlock_wait");
3492 while (pmap->pm_active & CPUMASK_LOCK) {
3493 cpu_pause();
3494 cpu_ccfence();
3495 lwkt_process_ipiq();
3496 }
3497 DEBUG_POP_INFO();
3498 }
3499 }

#2 Updated by tuxillo about 3 years ago

Fixed in 9d8625ebaab570eee3ac8eb7269d6001bcda19cf

Also available in: Atom PDF