ACPI panic
Andriy Gapon
avg at FreeBSD.org
Tue Nov 20 22:55:41 UTC 2012
on 20/11/2012 12:35 Stefan Farfeleder said the following:
> Hi,
>
> today I got the following panic on booting. The error seems to be some
> kind of race condition, as the same kernel booted fine before and
> afterwards. This is current, r243234.
>
> Any additional information required to debug/fix this?
[snip]
This indeed looks like a heisenbug that happens to FreeBSD users now and then
(google for AcpiOsAcquireObject panic).
I am trying a verify a certain theory... just on the chance that this issue
happens again, could you please try the following debugging patch?
Index: sys/contrib/dev/acpica/components/utilities/utdelete.c
===================================================================
--- sys/contrib/dev/acpica/components/utilities/utdelete.c (revision 243265)
+++ sys/contrib/dev/acpica/components/utilities/utdelete.c (working copy)
@@ -441,7 +441,7 @@
"Obj %p Refs=%X, can't decrement! (Set to 0)\n",
Object, NewCount));
- NewCount = 0;
+ NewCount = *(volatile UINT16*)NULL;
}
else
{
I hope that this compiles. The point is to induce a panic sooner rather than later.
> Fatal trap 12: page fault while in kernel mode
> cpuid = 1; apic id = 01
> fault virtual address = 0x10116
> fault code = supervisor read data, page not present
> instruction pointer = 0x20:0xffffffff802b5820
> stack pointer = 0x28:0xffffff811fe4f490
> frame pointer = 0x28:0xffffff811fe4f4c0
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 52 (sysctl)
>
> Reading symbols from /boot/kernel/if_iwn.ko...Reading symbols from /boot/kernel/if_iwn.ko.symbols...done.
> done.
> Loaded symbols for /boot/kernel/if_iwn.ko
> Reading symbols from /boot/kernel/iwn5000fw.ko...Reading symbols from /boot/kernel/iwn5000fw.ko.symbols...done.
> done.
> Loaded symbols for /boot/kernel/iwn5000fw.ko
> Reading symbols from /boot/modules/nvidia.ko...done.
> Loaded symbols for /boot/modules/nvidia.ko
> Reading symbols from /boot/kernel/linux.ko...Reading symbols from /boot/kernel/linux.ko.symbols...done.
> done.
> Loaded symbols for /boot/kernel/linux.ko
> #0 doadump (textdump=0) at pcpu.h:229
> 229 pcpu.h: No such file or directory.
> in pcpu.h
> (kgdb) #0 doadump (textdump=0) at pcpu.h:229
> #1 0xffffffff802bec2e in db_dump (dummy=<value optimized out>, dummy2=0,
> dummy3=0, dummy4=0x0) at /usr/src/sys/ddb/db_command.c:543
> #2 0xffffffff802be7f4 in db_command (last_cmdp=<value optimized out>,
> cmd_table=<value optimized out>, dopager=1)
> at /usr/src/sys/ddb/db_command.c:449
> #3 0xffffffff802be4e2 in db_command_loop ()
> at /usr/src/sys/ddb/db_command.c:502
> #4 0xffffffff802c0dc0 in db_trap (type=<value optimized out>, code=0)
> at /usr/src/sys/ddb/db_main.c:231
> #5 0xffffffff804c15de in kdb_trap (type=12, code=0, tf=<value optimized out>)
> at /usr/src/sys/kern/subr_kdb.c:654
> #6 0xffffffff806ee845 in trap_fatal (frame=0xffffff811fe4f3e0,
> eva=<value optimized out>) at /usr/src/sys/amd64/amd64/trap.c:867
> #7 0xffffffff806eeae6 in trap_pfault (frame=0x0, usermode=0)
> at /usr/src/sys/amd64/amd64/trap.c:698
> #8 0xffffffff806ee1fc in trap (frame=0xffffff811fe4f3e0)
> at /usr/src/sys/amd64/amd64/trap.c:463
> #9 0xffffffff806d8dc3 in calltrap () at /tmp/exception-EAhiLL.s:142
> #10 0xffffffff802b5820 in AcpiOsAcquireObject (Cache=0xfffffe000292a700)
> at /usr/src/sys/contrib/dev/acpica/components/utilities/utcache.c:310
> #11 0xffffffff802b8441 in AcpiUtCreateInternalObjectDbg (
> ModuleName=0xffffffff8074a2f6 "dsutils", LineNumber=703, ComponentId=64,
> Type=1)
> at /usr/src/sys/contrib/dev/acpica/components/utilities/utobject.c:437
> #12 0xffffffff8029bf65 in AcpiDsCreateOperand (WalkState=0xfffffe000618b800,
> Arg=0xfffffe00041b3bc0, ArgIndex=<value optimized out>)
> at /usr/src/sys/contrib/dev/acpica/components/dispatcher/dsutils.c:703
> #13 0xffffffff8029c062 in AcpiDsCreateOperands (WalkState=0xfffffe000618b800,
> FirstArg=<value optimized out>)
> at /usr/src/sys/contrib/dev/acpica/components/dispatcher/dsutils.c:798
> #14 0xffffffff8029c507 in AcpiDsExecEndOp (WalkState=0xfffffe000618b800)
> at /usr/src/sys/contrib/dev/acpica/components/dispatcher/dswexec.c:449
> #15 0xffffffff802afe04 in AcpiPsParseLoop (WalkState=0xfffffe000618b800)
> at /usr/src/sys/contrib/dev/acpica/components/parser/psloop.c:1276
> #16 0xffffffff802b068d in AcpiPsParseAml (WalkState=<value optimized out>)
> at /usr/src/sys/contrib/dev/acpica/components/parser/psparse.c:525
> #17 0xffffffff802b11e7 in AcpiPsExecuteMethod (Info=0xfffffe0006191c80)
> at /usr/src/sys/contrib/dev/acpica/components/parser/psxface.c:368
> #18 0xffffffff802aac16 in AcpiNsEvaluate (Info=0xfffffe0006191c80)
> at /usr/src/sys/contrib/dev/acpica/components/namespace/nseval.c:193
> #19 0xffffffff802add48 in AcpiEvaluateObject (Handle=0xfffffe0002a09280,
> Pathname=<value optimized out>, ExternalParams=<value optimized out>,
> ReturnBuffer=0xffffff811fe4f7c0)
> at /usr/src/sys/contrib/dev/acpica/components/namespace/nsxfeval.c:289
> #20 0xffffffff802ce378 in acpi_cmbat_get_bst (arg=0xfffffe0002a3d200)
> at /usr/src/sys/dev/acpica/acpi_cmbat.c:258
> #21 0xffffffff802ce202 in acpi_cmbat_bst (dev=0xfffffe0002a3d200,
> bstp=0xfffffe0006125300) at /usr/src/sys/dev/acpica/acpi_cmbat.c:419
> #22 0xffffffff802cd2ef in acpi_battery_get_battinfo (dev=0x0,
> battinfo=0xffffffff80a5d380) at acpi_if.h:142
> #23 0xffffffff802cd91f in acpi_battery_sysctl (oidp=0xfffffe000418c500,
> arg1=<value optimized out>, arg2=64, req=0xffffff811fe4f968)
> at /usr/src/sys/dev/acpica/acpi_battery.c:428
> #24 0xffffffff80496c8c in sysctl_root (arg1=<value optimized out>,
> arg2=<value optimized out>) at /usr/src/sys/kern/kern_sysctl.c:1513
> #25 0xffffffff80497248 in userland_sysctl (td=<value optimized out>,
> name=0xffffff811fe4fa30, namelen=<value optimized out>,
> old=<value optimized out>, oldlenp=<value optimized out>,
> inkernel=<value optimized out>, new=<value optimized out>,
> newlen=<value optimized out>, retval=<value optimized out>,
> flags=535099728) at /usr/src/sys/kern/kern_sysctl.c:1623
> #26 0xffffffff80497034 in sys___sysctl (td=0xfffffe00041a5900,
> uap=0xffffff811fe4fb40) at /usr/src/sys/kern/kern_sysctl.c:1549
> #27 0xffffffff806eef0e in amd64_syscall (td=0xfffffe00041a5900, traced=0)
> at subr_syscall.c:135
> #28 0xffffffff806d90ab in Xfast_syscall () at /tmp/exception-EAhiLL.s:292
> #29 0x000000080093456a in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> Current language: auto; currently minimal
> (kgdb)
>
--
Andriy Gapon
More information about the freebsd-acpi
mailing list