[DragonFlyBSD - Bug #3127] (In Progress) DragonFly 5.1: panic: assertion "count & TOK_COUNTMASK" failed in _lwkt_reltokref at /usr/src/sys/kern/lwkt_token.c:410

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Mon Apr 2 21:50:10 PDT 2018


Issue #3127 has been updated by dillon.

Status changed from New to In Progress
Assignee set to dillon

How repeatable is this bug?  It looks like ACPI is trying to hold a spin lock across a sleep.  I think its a problem with AcpiOsAcquireLock() and friends so I put together a quick patch:

http://apollo.backplane.com/DFlyMisc/acpi07.patch

This is a bit of a problem because AcpiOsAcquireLock is supposed to be a spinlock, and can be used from the idle thread (which is not allowed to block).  So the patch is a bit of a hack.  But it might do the job.

-Matt

----------------------------------------
Bug #3127: DragonFly 5.1: panic: assertion "count & TOK_COUNTMASK" failed in _lwkt_reltokref at /usr/src/sys/kern/lwkt_token.c:410
http://bugs.dragonflybsd.org/issues/3127#change-13397

* Author: peeter
* Status: In Progress
* Priority: Normal
* Assignee: dillon
* Category: 
* Target version: 
----------------------------------------
It is DragonFly 5.1 and the panic seems to originate in the ACPI subsystem. It's the same machine as in an earlier bug report

http://bugs.dragonflybsd.org/issues/2934

where the bug was ACPI related too.


---
Version String: DragonFly v5.1.0.1072.g51a52-DEVELOPMENT

---
panic with 1 spinlocks held
panic: assertion "count & TOK_COUNTMASK" failed in _lwkt_reltokref at /usr/src/sys/kern/lwkt_token.c:410

---
(kgdb) #0  _get_mycpu () at ./machine/thread.h:69
#1  panic (
    fmt=fmt at entry=0xffffffff80bb7298 "assertion \"%s\" failed in %s at %s:%u")
    at /usr/src/sys/kern/kern_shutdown.c:861
#2  0xffffffff80611a80 in _lwkt_reltokref (td=0xfffff80223a39780, 
    ref=<optimized out>) at /usr/src/sys/kern/lwkt_token.c:410
#3  lwkt_relalltokens (td=td at entry=0xfffff80223a39780)
    at /usr/src/sys/kern/lwkt_token.c:506
#4  0xffffffff805f8e1a in panic (
    fmt=fmt at entry=0xffffffff80beed38 "lwkt_switch: still holding %d exclusive spinlocks!") at /usr/src/sys/kern/kern_shutdown.c:814
#5  0xffffffff8060eafc in lwkt_switch ()
    at /usr/src/sys/kern/lwkt_thread.c:645
#6  0xffffffff80618498 in tsleep (
    ident=ident at entry=0xffffffff817f0d00 <kernel_map+128>, 
    flags=flags at entry=1024, wmesg=<optimized out>, timo=timo at entry=0)
    at /usr/src/sys/kern/kern_synch.c:716
#7  0xffffffff805e80b0 in lockmgr_exclusive (
    lkp=lkp at entry=0xffffffff817f0d00 <kernel_map+128>, flags=flags at entry=2)
    at /usr/src/sys/kern/kern_lock.c:382
#8  0xffffffff80901e39 in lockmgr (flags=2, 
    lkp=0xffffffff817f0d00 <kernel_map+128>) at /usr/src/sys/sys/lock.h:271
#9  vm_map_remove (map=0xffffffff817f0c80 <kernel_map>, 
    start=18446735302252429312, end=18446735302252560384)
    at /usr/src/sys/vm/vm_map.c:3112
#10 0xffffffff805f393b in kmem_slab_free (ptr=<optimized out>, 
    size=<optimized out>) at /usr/src/sys/kern/kern_slaballoc.c:1670
#11 0xffffffff805f4827 in kmalloc (size=size at entry=88, 
    type=type at entry=0xffffffff81391e00 <M_ACPITASK>, flags=flags at entry=4866)
    at /usr/src/sys/kern/kern_slaballoc.c:732
#12 0xffffffff8097356c in AcpiOsExecute (Type=Type at entry=OSL_GPE_HANDLER, 
    Function=Function at entry=0xffffffff80979e20 <AcpiEvAsynchExecuteGpeMethod>, Context=Context at entry=0xfffff8037ae17290)
    at /usr/src/sys/dev/acpica/Osd/OsdSchedule.c:138
#13 0xffffffff80979fc6 in AcpiEvGpeDispatch (GpeDevice=0xfffff8007a3a3658, 
    GpeEventInfo=0xfffff8037ae17290, GpeNumber=102)
    at /usr/src/sys/contrib/dev/acpica/source/components/events/evgpe.c:993
#14 0xffffffff8097a15c in AcpiEvGpeDetect (
    GpeXruptList=GpeXruptList at entry=0xfffff8007a323ee0)
    at /usr/src/sys/contrib/dev/acpica/source/components/events/evgpe.c:698
#15 0xffffffff8097c2d9 in AcpiEvSciXruptHandler (Context=0xfffff8007a323ee0)
    at /usr/src/sys/contrib/dev/acpica/source/components/events/evsci.c:261
#16 0xffffffff80972de1 in InterruptWrapper (arg=0xfffff8007a323ee0)
    at /usr/src/sys/dev/acpica/Osd/OsdInterrupt.c:158
#17 0xffffffff805c6619 in ithread_handler (arg=<optimized out>)
    at /usr/src/sys/kern/kern_intr.c:899
#18 0xffffffff8060b710 in ?? () at /usr/src/sys/kern/lwkt_thread.c:1748
#19 0x0000000000000000 in ?? ()
---





-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



More information about the Bugs mailing list