Date: Thu, 8 Nov 2012 09:06:38 +0000 From: Tom Lislegaard <Tom.Lislegaard@proact.no> To: 'Andriy Gapon' <avg@FreeBSD.org> Cc: "freebsd-acpi@FreeBSD.org" <freebsd-acpi@FreeBSD.org>, "freebsd-stable@FreeBSD.org" <freebsd-stable@FreeBSD.org> Subject: RE: 9-Stable panic: resource_list_unreserve: can't find resource Message-ID: <E8A24BEFDC390C4491718DEE8A9C4F20922E13@Semail03.proact.local> In-Reply-To: <50995C8F.3040309@FreeBSD.org> References: <E8A24BEFDC390C4491718DEE8A9C4F2091F824@Semail03.proact.local> <509172F6.2040400@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F2091FC33@Semail03.proact.local> <5092F209.7090803@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20920DD1@Semail03.proact <5093BECC.1030709@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921BAC@Semail03.proact.local> <50979BCD.3060000@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C47@Semail03.proact.local> <5097CB27.8040802@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C6A@Semail03.proact.local> <5097F24D.7040206@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F209220E2@Semail03.proact.local> <50995C8F.3040309@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> -----Original Message----- > From: Andriy Gapon [mailto:avg@FreeBSD.org] > Sent: 6. november 2012 19:53 > To: Tom Lislegaard > Cc: freebsd-stable@FreeBSD.org; freebsd-acpi@FreeBSD.org > Subject: Re: 9-Stable panic: resource_list_unreserve: can't find resource > > on 06/11/2012 10:50 Tom Lislegaard said the following: > > No problem, I'm happy to assist in debugging this. > > > > Enabling the acpi debugging quickly fills the kernel message buffer, > > but it seems to be the same set of messages repeating again and again > > so I think this is representative > > > > https://dl.dropbox.com/u/13263820/debug_dmesg.txt > > This didn't clarify things as much as I hoped, but I am inclined to think that it is polling from > userland that triggers all the processor notifications. > > In any case, here is a patch to try: > http://people.freebsd.org/~avg/acpi_cpu-stable.diff > > Please disable all the tunings added to loader.conf during debugging when testing this patch. > > The patch is a combination of two changes: > > 1. > Do not needlessly use ever-increasing resource IDs. > Rather use the IDs that are tied to Cx level IDs. > Also, release previous resources upon _CST change. > > 2. > Bind a thread that processes a processor _CST change notification to the target processor and perform > _CST processing in a critical section. These should ensure the following: > - the CPU doesn't enter an idle state and doesn't try to use Cx level parameters > while they are being changed > - Cx level parameters are never concurrently modified when multiple notifications > fire in a rapid succession and multiple ACPI task threads are configured sched_bind is a heavy- > weight operation, but it is OK in this context because processor notifications should not occur too > often > Thanks. I applied the patch yesterday, but found this morning the machine had crashed during the night with a page fault (kgdb) bt #0 doadump (textdump=Variable "textdump" is not available. ) at pcpu.h:229 #1 0xffffffff804441f4 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:448 #2 0xffffffff804446dc in panic (fmt=0x1 <Address 0x1 out of bounds>) at /usr/src/sys/kern/kern_shutdown.c:636 #3 0xffffffff806f234d in trap_fatal (frame=0xfffffe00089264a0, eva=Variable "eva" is not available. ) at /usr/src/sys/amd64/amd64/trap.c:878 #4 0xffffffff806f2668 in trap_pfault (frame=0xffffff82450401b0, usermode=0) at /usr/src/sys/amd64/amd64/trap.c:794 #5 0xffffffff806f29ec in trap (frame=0xffffff82450401b0) at /usr/src/sys/amd64/amd64/trap.c:463 #6 0xffffffff806dc5ff in calltrap () at /usr/src/sys/amd64/amd64/exception.S:228 #7 0xffffffff802d1bdd in AcpiOsAcquireObject (Cache=0xfffffe00052bac60) at /usr/src/sys/contrib/dev/acpica/utilities/utcache.c:316 #8 0xffffffff802d6883 in AcpiUtAllocateObjectDescDbg (ModuleName=0xffffffff8074c3f0 "dsutils", LineNumber=703, ComponentId=Variable "ComponentId" is not available. ) at /usr/src/sys/contrib/dev/acpica/utilities/utobject.c:437 #9 0xffffffff802d6a1d in AcpiUtCreateInternalObjectDbg (ModuleName=0xffffffff8074c3f0 "dsutils", LineNumber=703, ComponentId=64, Type=1) at /usr/src/sys/contrib/dev/acpica/utilities/utobject.c:112 #10 0xffffffff802a71e8 in AcpiDsCreateOperand (WalkState=0xfffffe0008a3bc00, Arg=0xfffffe0005366800, ArgIndex=0) at /usr/src/sys/contrib/dev/acpica/dispatcher/dsutils.c:703 #11 0xffffffff802a7587 in AcpiDsCreateOperands (WalkState=0xfffffe0008a3bc00, FirstArg=0xfffffe0005366800) at /usr/src/sys/contrib/dev/acpica/dispatcher/dsutils.c:798 #12 0xffffffff802a856e in AcpiDsExecEndOp (WalkState=0xfffffe0008a3bc00) at /usr/src/sys/contrib/dev/acpica/dispatcher/dswexec.c:567 #13 0xffffffff802c9441 in AcpiPsParseLoop (WalkState=0xfffffe0008a3bc00) at /usr/src/sys/contrib/dev/acpica/parser/psloop.c:1249 #14 0xffffffff802ca8dd in AcpiPsParseAml (WalkState=0xfffffe0008a3bc00) at /usr/src/sys/contrib/dev/acpica/parser/psparse.c:525 #15 0xffffffff802cb981 in AcpiPsExecuteMethod (Info=0xfffffe01a2143100) at /usr/src/sys/contrib/dev/acpica/parser/psxface.c:368 #16 0xffffffff802c2287 in AcpiNsEvaluate (Info=0xfffffe01a2143100) at /usr/src/sys/contrib/dev/acpica/namespace/nseval.c:193 #17 0xffffffff802d3f56 in AcpiUtEvaluateObject (PrefixNode=0xfffffe00052f6540, Path=0xffffffff807538f6 "_STA", ExpectedReturnBtypes=1, ReturnDesc=0xffffff8245040660) at /usr/src/sys/contrib/dev/acpica/utilities/uteval.c:102 #18 0xffffffff802d428f in AcpiUtExecute_STA (DeviceNode=0xfffffe00052f6540, Flags=0xfffffe01cc0d1e18) at /usr/src/sys/contrib/dev/acpica/utilities/uteval.c:276 #19 0xffffffff802c7e47 in AcpiGetObjectInfo (Handle=Variable "Handle" is not available. ) at /usr/src/sys/contrib/dev/acpica/namespace/nsxfname.c:423 #20 0xffffffff802e35ed in acpi_BatteryIsPresent (dev=0xfffffe0005378c00) at /usr/src/sys/dev/acpica/acpi.c:2064 #21 0xffffffff802e66e1 in acpi_battery_get_battinfo (dev=0x0, battinfo=0xffffffff80a4ba70) at /usr/src/sys/dev/acpica/acpi_battery.c:176 #22 0xffffffff802e6a44 in acpi_battery_sysctl (oidp=0xfffffe0008785600, arg1=Variable "arg1" is not available. ) at /usr/src/sys/dev/acpica/acpi_battery.c:428 #23 0xffffffff8044e057 in sysctl_root (oidp=Variable "oidp" is not available. ) at /usr/src/sys/kern/kern_sysctl.c:1513 #24 0xffffffff8044e335 in userland_sysctl (td=Variable "td" is not available. ) at /usr/src/sys/kern/kern_sysctl.c:1623 #25 0xffffffff8044e84a in sys___sysctl (td=0xfffffe0008c6c920, uap=0xffffff8245040a70) at /usr/src/sys/kern/kern_sysctl.c:1549 #26 0xffffffff806f1c40 in amd64_syscall (td=0xfffffe0008c6c920, traced=0) at subr_syscall.c:135 #27 0xffffffff806dc8e7 in Xfast_syscall () at /usr/src/sys/amd64/amd64/exception.S:387 #28 0x00000008026587ec in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) -tom
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8A24BEFDC390C4491718DEE8A9C4F20922E13>
