reproduceable panic on suspend

Lars Engels lars.engels at 0x20.net
Mon Sep 6 15:14:52 UTC 2010


Hi all,

I am playing around with my Lenovo Thinkpad X301 and can reproduce a  
kernel panic when I enter suspend state.
System is 8.1-RELEASE amd64.

Here's the beginning of crashinfo's output, it's full size is >300kb,  
so please ask me if you want the whole file.

NB011868 dumped core - see ./vmcore.0

Mo  6 Sep 2010 16:41:16 CEST

  NB011868

panic: page fault

GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x0
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff808170d6
stack pointer           = 0x28:0xffffff803d104690
frame pointer           = 0x28:0xffffff803d104720
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         = 3363 (acpiconf)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 4m28s
Physical memory: 1974 MB
Dumping 1300 MB: 1285 1269 1253 1237 1221 1205 1189 1173 1157 1141 1125 1109
1093 1077 1061 1045 1029 1013 997 981 965 949 933 917 901 885 869 853 837 821
805 789 773 757 741 725 709 693 677 661 645 629 613 597 581 565 549  
533 517 501
485 469 453 437 421 405 389 373 357 341 325 309 293 277 261 245 229  
213 197 181
165 149 133 117 101 85 69 53 37 21 5

[...]

#0  doadump () at pcpu.h:223
223     pcpu.h: No such file or directory.
         in pcpu.h
(kgdb) #0  doadump () at pcpu.h:223
#1  0xffffffff805331d9 in boot (howto=260)
     at /usr/src/sys/kern/kern_shutdown.c:416
#2  0xffffffff8053360c in panic (fmt=0xffffffff808efa94 "%s")
     at /usr/src/sys/kern/kern_shutdown.c:590
#3  0xffffffff80818d88 in trap_fatal (frame=0xffffff000fa09000,  
eva=Variable "eva" is not available.
)
     at /usr/src/sys/amd64/amd64/trap.c:777
#4  0xffffffff80819154 in trap_pfault (frame=0xffffff803d1045e0, usermode=0)
     at /usr/src/sys/amd64/amd64/trap.c:693
#5  0xffffffff8081999a in trap (frame=0xffffff803d1045e0)
     at /usr/src/sys/amd64/amd64/trap.c:451
#6  0xffffffff807ff363 in calltrap ()
     at /usr/src/sys/amd64/amd64/exception.S:223
#7  0xffffffff808170d6 in bcopy () at /usr/src/sys/amd64/amd64/support.S:124
#8  0xffffffff80da3fb7 in vesa_bios_save_restore (code=1,
     p=0xffffff80002c4004, size=4928)
     at /usr/src/sys/modules/vesa/../../dev/fb/vesa.c:551
#9  0xffffffff80da4059 in vesa_save_state (adp=Variable "adp" is not  
available.
)
     at /usr/src/sys/modules/vesa/../../dev/fb/vesa.c:1429
#10 0xffffffff808521d4 in vga_suspend (dev=0xffffff00026fd000)
     at /usr/src/sys/isa/vga_isa.c:81
#11 0xffffffff80852267 in isavga_suspend (dev=0xffffff00026fd000)
     at /usr/src/sys/isa/vga_isa.c:234
#12 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff00026a8700)
     at device_if.h:273
#13 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff0002560100)
     at device_if.h:273
#14 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff000254a300)
     at device_if.h:273
#15 0xffffffff80412875 in pci_suspend (dev=0xffffff000254a300)
     at /usr/src/sys/dev/pci/pci.c:2891
#16 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff0002516800)
     at device_if.h:273
#17 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff00023b5a00)
     at device_if.h:273
#18 0xffffffff801e8f54 in acpi_suspend (dev=0xffffff00023b5a00)
     at /usr/src/sys/dev/acpica/acpi.c:704
#19 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff0002356400)
     at device_if.h:273
#20 0xffffffff8055d122 in bus_generic_suspend (dev=0xffffff0002355800)
     at device_if.h:273
#21 0xffffffff801e4d2e in acpi_EnterSleepState (sc=0xffffff00023b5900,  
state=3)
     at device_if.h:273
#22 0xffffffff801e5763 in acpi_AckSleepState (clone=0xffffffff80bc6580,
     error=0) at /usr/src/sys/dev/acpica/acpi.c:2450
#23 0xffffffff804bfd97 in devfs_ioctl_f (fp=0xffffff00028ae140,
     com=2147766277, data=Variable "data" is not available.
) at /usr/src/sys/fs/devfs/devfs_vnops.c:659
#24 0xffffffff80573d96 in kern_ioctl (td=0xffffff000fa09000, fd=3,
     com=2147766277, data=0xffffff00027d05c0 "") at file.h:262
#25 0xffffffff80573fdd in ioctl (td=0xffffff000fa09000,  
uap=0xffffff803d104bf0)
     at /usr/src/sys/kern/sys_generic.c:678
#26 0xffffffff80819367 in syscall (frame=0xffffff803d104c80)
     at /usr/src/sys/amd64/amd64/trap.c:945
#27 0xffffffff807ff641 in Xfast_syscall ()
     at /usr/src/sys/amd64/amd64/exception.S:374
#28 0x000000080073c38c in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)

------------------------------------------------------------------------
ps -axl

   UID   PID  PPID CPU PRI NI   VSZ   RSS MWCHAN STAT  TT       TIME COMMAND
     0     0     0   0 -68  0     0     0 -      RLs   ??   
395689:00,00 [kernel]
     0     1     0   0  65  0  3204     0 wait   DLs   ??  169193:02,00 [init]
     0     2     0   0  -8  0     0     0 -      DL    ??   
780473:17,00 [g_event]
     0     3     0   0  -8  0     0     0 -      DL    ??   
16180031:56,00 [g_up]
     0     4     0   0  -8  0     0     0 -      DL    ??   
16183932:41,00 [g_down]
     0     5     0   0 -16  0     0     0 crypto DL    ??    0:00,00 [crypto]
     0     6     0   0 -16  0     0     0 crypto DL    ??    0:00,00  
[crypto returns]
     0     7     0   0 -16  0     0     0 waitin DL    ??  544:43,00  
[sctp_iterator]
     0     8     0   0  44  0     0     0 ccb_sc DL    ??  2515:06,00  
[xpt_thrd]
     0     9     0   0  44  0     0     0 r      DL    ??   
7725321:06,00 [g_journal switcher]
     0    10     0   0 -16  0     0     0 audit_ DL    ??    0:00,00 [audit]
     0    11     0   0 171  0     0     0 -      RL    ??   
1574383298:36,00 [idle]
     0    12     0   0 -21  0     0     0 -      WL    ??   
22193170:32,00 [intr]
     0    13     0   0 -16  0     0     0 -      DL    ??   
802305:00,00 [yarrow]
     0    15     0   0 -16  0     0     0 tzpoll DL    ??   
743663:19,00 [acpi_thermal]
     0    16     0   0 -16  0     0     0 coolin DL    ??  404:15,00  
[acpi_cooling1]
     0    17     0   0  -8  0     0     0 gj:wor DL    ??  14937:32,00  
[g_journal ad0s3d]
     0    18     0   0  -8  0     0     0 gj:wor DL    ??   
1729158:54,00 [g_journal ad0s3e]
     0    19     0   0  44  0     0     0 geli:w DL    ??   
86365275:44,00 [g_eli[0] ad0s3f]
     0    20     0   0  47  0     0     0 geli:w DL    ??   
109835836:57,00 [g_eli[1] ad0s3f]
     0    21     0   0 -32  0     0     0 psleep DL    ??  7630:14,00  
[pagedaemon]
     0    22     0   0 -32  0     0     0 psleep DL    ??   79:55,00 [vmdaemon]
     0    23     0   0  76  0     0     0 pgzero DL    ??   64:17,00 [pagezero]
     0    24     0   0 -32  0     0     0 psleep DL    ??  22948:34,00  
[bufdaemon]
     0    25     0   0 -32  0     0     0 vlruwt DL    ??  27706:56,00 [vnlru]
     0    26     0   0  44  0     0     0 syncer DL    ??   
1351719:57,00 [syncer]
     0    27     0   0 -32  0     0     0 sdflus DL    ??  44495:44,00  
[softdepflush]
     0    28     0   0 -32  0     0     0 flowcl DL    ??  16664:12,00  
[flowcleaner]
     0    29     0   0  -8  0     0     0 e      DL    ??   
9574300:52,00 [g_journal ad0s3f.e]
     0   128     1   0  76  0  2744     0 pause  Ds    ??  16057:32,00  
[adjkerntz]
     0   459     0   0  58  0     0     0 pftm   DL    ??  25864:53,00  
[pfpurge]
     0   703     1   0  44  0  8044     0 nanslp Ds    ??   
257174:38,00 [moused]
     0   720     1   0  76  0  3204     0 wait   Ds    ??  69002:23,00 [devd]
     0   952     1   0  44  0  7024     0 select Ds    ??   
198525:15,00 [syslogd]
     0  1143     1   0  76  0  5808     0 select Ds    ??  22830:58,00  
[dhclient]
     0  1147     1   0  76  0  8264     0 wait   D     ??  1985492:29,00 [sh]
    65  1150     1   0  44  0  5808     0 select Ds    ??  28546:07,00  
[dhclient]
     0  1296     1   0  44  0  6896     0 select Ds    ??   
6128966:26,00 [powerd]


I removed all usb related stuff from the kernel config and use  
modules. In rc.suspend
I unload the modules.
When I still had the usb drivers inside the kernel suspending worked  
more reliable.


Please keep me CC'ed. I am not subscribed to acpi@

-- 
Lars Engels
E-Mail: lars.engels at 0x20.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: PGP Digital Signature
Url : http://lists.freebsd.org/pipermail/freebsd-acpi/attachments/20100906/3d0ec94b/attachment.pgp


More information about the freebsd-acpi mailing list