Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jul 2010 16:49:49 +0200 (CEST)
From:      Yamagi Burmeister <lists@yamagi.org>
To:        freebsd-mobile@freebsd.org
Subject:   Crash while suspending on FreeBSD/amd64 8.1-RC1 (backtrace inside)
Message-ID:  <alpine.BSF.2.00.1007011623470.2777@screw.home.yamagi.org>

next in thread | raw e-mail | index | archive | help
Hello,
I purchased a Lenovo Thinkpad R500 8716WR8 a few weeks ago. FreeBSd is
running fine on it with one litte problem. Every now and than the system
crashes while suspending. Today I was able to get a crash dump and
extract a backtrace and some more informations.

The hardware:
-------------
Intel Core2Duo T6670 @ 2,2GHz
2048 MB RAM
Intel X4500 Graphic Adapter
Latest available BIOS

The Software:
-------------

% uname -a
FreeBSD maka.home.yamagi.org 8.1-RC2 FreeBSD 8.1-RC2 #0: Wed Jun 30
19:16:52 CEST 2010 root@maka.home.yamagi.org:/usr/obj/usr/src/sys/MAKA
amd64

% sysctl kern.timecounter.hardware
kern.timecounter.hardware: i8254

The crash:
----------
In most cases the systems suspends and resumes just fine. But in about 1
out of 10 times it crashes while suspend. As of today three of this
crashes occured, all of them were the second or third suspend since the
last reboot. And in all cases the system uptime was over 3 hours, I was
not able to provoke this crash right after boot. In all cases the system
was running xorg-server 1.7.5,1 and xf86-video-intel 2.7.1_3. The
console is running in VESA mode with a resolution of 1680x1050:
allscreens_flags="MODE_366"

And now the crash information extracted via kgdb:
-------------------------------------------------

root@maka:pts/0 ...sys/MAKA> kgdb /boot/kernel/kernel.debug
/usr/dump/vmcore.0 [16:43:54]
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:0xffffffff80406f16
stack pointer	        = 0x28:0xffffff803da28690
frame pointer	        = 0x28:0xffffff803da28720
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		= 8367 (acpiconf)
trap number		= 12
panic: page fault
cpuid = 0
Uptime: 3h36m54s
Physical memory: 1929 MB
Dumping 1367 MB: 1352 1336 1320 1304 1288 1272 1256 1240 1224 1208 1192
1176 1160 1144 1128 1112 1096 1080 1064 1048 1032 1016 1000 984 968 952
936 920 904 888 872 856 840 824 808 792 776 760 744 728 712 696 680 664
648 632 616 600 584 568 552 536 520 504 488 472 456 440 424 408 392 376
360 344 328 312 296 280 264 248 232 216 200 184 168 152 136 120 104 88
72 56 40 24 8

Reading symbols from /boot/kernel/vesa.ko...Reading symbols from
/boot/kernel/vesa.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/vesa.ko
Reading symbols from /boot/kernel/cd9660.ko...Reading symbols from
/boot/kernel/cd9660.ko.symbols...done.
done.
[snip - removed a lot of symbol files]
#0  doadump () at pcpu.h:223
223		__asm __volatile("movq %%gs:0,%0" : "=r" (td));



list of the instruction pointer:
--------------------------------

(kgdb) list *0xffffffff80406f16
0xffffffff80406f16 is at /usr/src/sys/amd64/amd64/support.S:125.
120		cmpq	%rcx,%rax			/* overlapping && src < dst? */
121		jb	1f
122 
123		shrq	$3,%rcx				/* copy by 64-bit words */
124		cld					/* nope, copy forwards */
125		rep
126		movsq
127		movq	%rdx,%rcx
128		andq	$7,%rcx				/* any bytes left? */
129		rep


The backtrace:
--------------

(kgdb) bt
#0  doadump () at pcpu.h:223
#1  0xffffffff8020dfe9 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:416
#2  0xffffffff8020e41c in panic (fmt=0xffffffff8044ebbb "%s")
     at /usr/src/sys/kern/kern_shutdown.c:590
#3  0xffffffff80408bc8 in trap_fatal (frame=0xffffff0004a4e000,
eva=Variable "eva" is not available.
)
     at /usr/src/sys/amd64/amd64/trap.c:777
#4  0xffffffff80408f94 in trap_pfault (frame=0xffffff803da285e0,
usermode=0)
     at /usr/src/sys/amd64/amd64/trap.c:693
#5  0xffffffff804097da in trap (frame=0xffffff803da285e0)
     at /usr/src/sys/amd64/amd64/trap.c:451
#6  0xffffffff803ef543 in calltrap () at
/usr/src/sys/amd64/amd64/exception.S:223
#7  0xffffffff80406f16 in bcopy () at
/usr/src/sys/amd64/amd64/support.S:124
#8  0xffffffff80745fb7 in vesa_bios_save_restore (code=1,
p=0xffffff80002a6004,
     size=4928) at /usr/src/sys/modules/vesa/../../dev/fb/vesa.c:551
#9  0xffffffff80746059 in vesa_save_state (adp=Variable "adp" is not
available.
)
     at /usr/src/sys/modules/vesa/../../dev/fb/vesa.c:1429
#10 0xffffffff80424144 in vga_suspend (dev=0xffffff0001632a00)
     at /usr/src/sys/isa/vga_isa.c:81
#11 0xffffffff804241d7 in isavga_suspend (dev=0xffffff0001632a00)
     at /usr/src/sys/isa/vga_isa.c:234
#12 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff0001632500)
at device_if.h:273
#13 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff00014bfd00)
at device_if.h:273
#14 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff00014bf300)
at device_if.h:273
#15 0xffffffff8019e5b5 in pci_suspend (dev=0xffffff00014bf300)
     at /usr/src/sys/dev/pci/pci.c:2891
#16 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff0001489b00)
at device_if.h:273
#17 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff00013abe00)
at device_if.h:273
#18 0xffffffff801890f4 in acpi_suspend (dev=0xffffff00013abe00)
     at /usr/src/sys/dev/acpica/acpi.c:704
#19 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff0001351800)
at device_if.h:273
#20 0xffffffff80237f32 in bus_generic_suspend (dev=0xffffff0001350c00)
at device_if.h:273
#21 0xffffffff80184ece in acpi_EnterSleepState (sc=0xffffff00013abd00,
state=3)
     at device_if.h:273
#22 0xffffffff80185903 in acpi_AckSleepState (clone=0xffffffff80632c60,
error=0)
     at /usr/src/sys/dev/acpica/acpi.c:2450
#23 0xffffffff801b7787 in devfs_ioctl_f (fp=0xffffff0037ba4690,
com=2147766277, data=Variable "data" is not available.
)
     at /usr/src/sys/fs/devfs/devfs_vnops.c:659
#24 0xffffffff8024deb6 in kern_ioctl (td=0xffffff0004a4e000, fd=3,
com=2147766277,
     data=0xffffff004578a820 "") at file.h:262
#25 0xffffffff8024e0fd in ioctl (td=0xffffff0004a4e000,
uap=0xffffff803da28bf0)
     at /usr/src/sys/kern/sys_generic.c:678
#26 0xffffffff804091a7 in syscall (frame=0xffffff803da28c80)
     at /usr/src/sys/amd64/amd64/trap.c:945
#27 0xffffffff803ef821 in Xfast_syscall () at
/usr/src/sys/amd64/amd64/exception.S:374
#28 0x000000080073b38c in ?? ()
Previous frame inner to this frame (corrupt stack?)


Since I have the core dump I can provide more information if necessary.
I could even upload the core and the kernel to web if it helps.

Thanks for your help,
Yamagi

-- 
Homepage:     www.yamagi.org
Jabber:       yamagi@yamagi.org
GnuPG/GPG:    0xEFBCCBCB



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1007011623470.2777>