Bug #2152
closedDFBSD v2.12.0.4.g2a52d-RELEASE - panic: assertion "curthread->td_critcount" failed in lwkt_process_ipiq_core
0%
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
       Updated by tuxillo about 14 years ago
      Updated by tuxillo about 14 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 }
       Updated by tuxillo about 14 years ago
      Updated by tuxillo about 14 years ago
      
    
    Fixed in 9d8625ebaab570eee3ac8eb7269d6001bcda19cf