Bug 187654 - Panic on system resume (swi4: clock)
Summary: Panic on system resume (swi4: clock)
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: Aleksandr Rybalko
URL:
Keywords: vt
Depends on:
Blocks:
 
Reported: 2014-03-17 09:40 UTC by Robert David
Modified: 2014-07-31 22:26 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert David 2014-03-17 09:40:00 UTC
On resume form acpisleep (S3) the system PANICS.

Revision that works ok: a887dd1976ef3a88756e362b7933a80b0dccc608 
Tested on rev: 394eaed7a53ca7a3c3e21479e56edd8e009e8f67
branch: stable/10

Trace:
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address  = 0x30
fault code   = supervisor read data, page not present
instruction pointer  = 0x20:0xffffffff808a8ed3
stack pointer          = 0x28:0xfffffe00f3176a20
frame pointer          = 0x28:0xfffffe00f3176af0
code segment   = base rx0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process    = 12 (swi4: clock)
trap number    = 12
panic: page fault
cpuid = 0

KDB: stack backtrace:
#0 0xffffffff808cc440 at kdb_backtrace+0x60
#1 0xffffffff80893e15 at panic+0x155
#2 0xffffffff80c76032 at trap_fatal+0x3a2
#3 0xffffffff80c76309 at trap_pfault+0x2c9
#4 0xffffffff80c75a9b at trap+0x5bb
#5 0xffffffff80c5cd52 at calltrap+0x8
#6 0xffffffff808a92e4 at softclock+0x94
#7 0xffffffff8086827b at intr_event_execute_handlers+0xab
#8 0xffffffff808686c6 at ithread_loop+0x96
#9 0xffffffff80865f2a at fork_exit+0x9a
#10 0xffffffff80c5d28e at fork_trampoline+0xe


I use custom kernel config (since I need unload and load usb modules on suspend):
include		GENERIC
ident		THINKPAD

# set newcons
nodevice	sc
nodevice	vga
device		vt
device		vt_vga
nooptions VESA

# disable kernel debug
nooptions DDB
nooptions GDB
nooptions INVARIANTS
nooptions INVARIANT_SUPPORT
nooptions WITNESS
nooptions WITNESS_SKIPSPIN

# disable usb builtin
nodevice uhci
nodevice ohci
nodevice ehci
nodevice xhci
nodevice ukbd
nodevice umass

How-To-Repeat: suspend: acpiconf -s3
resume -> PANICS
Comment 1 Ivan Klymenko 2014-03-17 12:30:50 UTC
I have the exact same problem:

Sat Mar 15 23:42:41 EET 2014

FreeBSD nonamehost.local 10.0-STABLE FreeBSD 10.0-STABLE #0 r263046: Wed Mar 12 08:43:32 EET 2014     ivan@nonamehost.local:/usr/obj/usr/src/sys/mk10  amd64

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:
ugen0.3: <PixArt> at usbus0 (disconnected)
ums0: at uhub3, port 3, addr 3 (disconnected)
uhub1: at usbus1, port 1, addr 1 (disconnected)
uhub2: at usbus2, port 1, addr 1 (disconnected)
ugen2.2: <vendor 0x8087> at usbus2 (disconnected)
uhub4: at uhub2, port 1, addr 2 (disconnected)
ugen2.3: <6047B0021601A0114AGXA> at usbus2 (disconnected)
ugen2.4: <vendor 0x03f0> at usbus2 (disconnected)
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP01: AE_BAD_PARAMETER
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP02: AE_BAD_PARAMETER
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP03: AE_BAD_PARAMETER
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP04: AE_BAD_PARAMETER
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP06: AE_BAD_PARAMETER
pci0: failed to set ACPI power state D2 on \_SB_.PCI0.RP08: AE_BAD_PARAMETER
acpi0: cleared fixed power button status
info: [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
<5>re0: link state changed to DOWN
xhci0: 32 byte context size.
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
uhub2: <0x1033 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
uhub2: 4 ports with 2 removable, self powered
<5>re0: link state changed to UP
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
ugen0.2: <vendor 0x8087> at usbus0
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus0
ugen2.2: <vendor 0x8087> at usbus2
uhub4: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus2


Fatal trap 12: page fault while in kernel mode
cpuid = 2; apic id = 02
fault virtual address	= 0x30
fault code		= supervisor read data, page not present
instruction pointer	= 0x20:0xffffffff808da403
stack pointer	        = 0x28:0xfffffe016f5588e0
frame pointer	        = 0x28:0xfffffe016f5589b0
code segment		= base rx0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 12 (swi4: clock)
trap number		= 12
panic: page fault
cpuid = 2
KDB: stack backtrace:
#0 0xffffffff808fd970 at kdb_backtrace+0x60
#1 0xffffffff808c5245 at panic+0x155
#2 0xffffffff80cd6b42 at trap_fatal+0x3a2
#3 0xffffffff80cd6e19 at trap_pfault+0x2c9
#4 0xffffffff80cd65ab at trap+0x5bb
#5 0xffffffff80cbd862 at calltrap+0x8
#6 0xffffffff808da814 at softclock+0x94
#7 0xffffffff8089450b at intr_event_execute_handlers+0xab
#8 0xffffffff80894956 at ithread_loop+0x96
#9 0xffffffff808921ba at fork_exit+0x9a
#10 0xffffffff80cbdd9e at fork_trampoline+0xe
Uptime: 9h42m13s
Dumping 690 out of 6055 MB:..3%..12%..21%..31%..42%..52%..61%..72%..82%..91%

Reading symbols from /boot/kernel/coretemp.ko.symbols...done.
Loaded symbols for /boot/kernel/coretemp.ko.symbols
Reading symbols from /boot/kernel/ichwd.ko.symbols...done.
Loaded symbols for /boot/kernel/ichwd.ko.symbols
Reading symbols from /boot/kernel/fdescfs.ko.symbols...done.
Loaded symbols for /boot/kernel/fdescfs.ko.symbols
Reading symbols from /boot/kernel/linprocfs.ko.symbols...done.
Loaded symbols for /boot/kernel/linprocfs.ko.symbols
Reading symbols from /boot/kernel/linux.ko.symbols...done.
Loaded symbols for /boot/kernel/linux.ko.symbols
Reading symbols from /boot/kernel/linsysfs.ko.symbols...done.
Loaded symbols for /boot/kernel/linsysfs.ko.symbols
Reading symbols from /boot/kernel/cpuctl.ko.symbols...done.
Loaded symbols for /boot/kernel/cpuctl.ko.symbols
Reading symbols from /boot/kernel/aesni.ko.symbols...done.
Loaded symbols for /boot/kernel/aesni.ko.symbols
Reading symbols from /boot/kernel/crypto.ko.symbols...done.
Loaded symbols for /boot/kernel/crypto.ko.symbols
Reading symbols from /boot/kernel/cryptodev.ko.symbols...done.
Loaded symbols for /boot/kernel/cryptodev.ko.symbols
Reading symbols from /boot/kernel/sem.ko.symbols...done.
Loaded symbols for /boot/kernel/sem.ko.symbols
Reading symbols from /boot/kernel/accf_data.ko.symbols...done.
Loaded symbols for /boot/kernel/accf_data.ko.symbols
Reading symbols from /boot/kernel/accf_http.ko.symbols...done.
Loaded symbols for /boot/kernel/accf_http.ko.symbols
Reading symbols from /boot/kernel/accf_dns.ko.symbols...done.
Loaded symbols for /boot/kernel/accf_dns.ko.symbols
Reading symbols from /boot/kernel/h_ertt.ko.symbols...done.
Loaded symbols for /boot/kernel/h_ertt.ko.symbols
Reading symbols from /boot/kernel/cc_cdg.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_cdg.ko.symbols
Reading symbols from /boot/kernel/cc_chd.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_chd.ko.symbols
Reading symbols from /boot/kernel/cc_cubic.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_cubic.ko.symbols
Reading symbols from /boot/kernel/cc_hd.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_hd.ko.symbols
Reading symbols from /boot/kernel/cc_htcp.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_htcp.ko.symbols
Reading symbols from /boot/kernel/cc_vegas.ko.symbols...done.
Loaded symbols for /boot/kernel/cc_vegas.ko.symbols
Reading symbols from /boot/kernel/aio.ko.symbols...done.
Loaded symbols for /boot/kernel/aio.ko.symbols
Reading symbols from /boot/kernel/tmpfs.ko.symbols...done.
Loaded symbols for /boot/kernel/tmpfs.ko.symbols
Reading symbols from /boot/kernel/fuse.ko.symbols...done.
Loaded symbols for /boot/kernel/fuse.ko.symbols
Reading symbols from /boot/kernel/lindev.ko.symbols...done.
Loaded symbols for /boot/kernel/lindev.ko.symbols
Reading symbols from /boot/kernel/acpi_hp.ko.symbols...done.
Loaded symbols for /boot/kernel/acpi_hp.ko.symbols
Reading symbols from /boot/kernel/acpi_wmi.ko.symbols...done.
Loaded symbols for /boot/kernel/acpi_wmi.ko.symbols
Reading symbols from /boot/kernel/acpi_video.ko.symbols...done.
Loaded symbols for /boot/kernel/acpi_video.ko.symbols
Reading symbols from /boot/kernel/drm.ko.symbols...done.
Loaded symbols for /boot/kernel/drm.ko.symbols
Reading symbols from /boot/kernel/smbus.ko.symbols...done.
Loaded symbols for /boot/kernel/smbus.ko.symbols
Reading symbols from /boot/kernel/smb.ko.symbols...done.
Loaded symbols for /boot/kernel/smb.ko.symbols
Reading symbols from /boot/kernel/ichsmb.ko.symbols...done.
Loaded symbols for /boot/kernel/ichsmb.ko.symbols
Reading symbols from /boot/kernel/snd_uaudio.ko.symbols...done.
Loaded symbols for /boot/kernel/snd_uaudio.ko.symbols
Reading symbols from /boot/modules/cuse4bsd.ko...done.
Loaded symbols for /boot/modules/cuse4bsd.ko
Reading symbols from /boot/kernel/ng_bt3c.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_bt3c.ko.symbols
Reading symbols from /boot/kernel/netgraph.ko.symbols...done.
Loaded symbols for /boot/kernel/netgraph.ko.symbols
Reading symbols from /boot/kernel/ng_ubt.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_ubt.ko.symbols
Reading symbols from /boot/kernel/ng_hci.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_hci.ko.symbols
Reading symbols from /boot/kernel/ng_bluetooth.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_bluetooth.ko.symbols
Reading symbols from /boot/kernel/ubtbcmfw.ko.symbols...done.
Loaded symbols for /boot/kernel/ubtbcmfw.ko.symbols
Reading symbols from /boot/kernel/cd9660_iconv.ko.symbols...done.
Loaded symbols for /boot/kernel/cd9660_iconv.ko.symbols
Reading symbols from /boot/kernel/libiconv.ko.symbols...done.
Loaded symbols for /boot/kernel/libiconv.ko.symbols
Reading symbols from /boot/kernel/geom_sched.ko.symbols...done.
Loaded symbols for /boot/kernel/geom_sched.ko.symbols
Reading symbols from /boot/kernel/gsched_rr.ko.symbols...done.
Loaded symbols for /boot/kernel/gsched_rr.ko.symbols
Reading symbols from /boot/kernel/wlan_xauth.ko.symbols...done.
Loaded symbols for /boot/kernel/wlan_xauth.ko.symbols
Reading symbols from /boot/kernel/wlan_acl.ko.symbols...done.
Loaded symbols for /boot/kernel/wlan_acl.ko.symbols
Reading symbols from /boot/kernel/ums.ko.symbols...done.
Loaded symbols for /boot/kernel/ums.ko.symbols
Reading symbols from /boot/modules/vboxnetflt.ko...done.
Loaded symbols for /boot/modules/vboxnetflt.ko
Reading symbols from /boot/modules/vboxdrv.ko...done.
Loaded symbols for /boot/modules/vboxdrv.ko
Reading symbols from /boot/kernel/ng_ether.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_ether.ko.symbols
Reading symbols from /boot/modules/vboxnetadp.ko...done.
Loaded symbols for /boot/modules/vboxnetadp.ko
Reading symbols from /boot/kernel/ng_btsocket.ko.symbols...done.
Loaded symbols for /boot/kernel/ng_btsocket.ko.symbols
Reading symbols from /boot/kernel/i915kms.ko.symbols...done.
Loaded symbols for /boot/kernel/i915kms.ko.symbols
Reading symbols from /boot/kernel/drm2.ko.symbols...done.
Loaded symbols for /boot/kernel/drm2.ko.symbols
Reading symbols from /boot/kernel/iicbus.ko.symbols...done.
Loaded symbols for /boot/kernel/iicbus.ko.symbols
Reading symbols from /boot/kernel/iic.ko.symbols...done.
Loaded symbols for /boot/kernel/iic.ko.symbols
Reading symbols from /boot/kernel/iicbb.ko.symbols...done.
Loaded symbols for /boot/kernel/iicbb.ko.symbols
Reading symbols from /usr/local/modules/rtc.ko...done.
Loaded symbols for /usr/local/modules/rtc.ko
#0  doadump (textdump=<value optimized out>) at pcpu.h:219
219	pcpu.h: No such file or directory.
	in pcpu.h
(kgdb) #0  doadump (textdump=<value optimized out>) at pcpu.h:219
#1  0xffffffff808c4ec0 in kern_reboot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:452
#2  0xffffffff808c5284 in panic (fmt=<value optimized out>)
    at /usr/src/sys/kern/kern_shutdown.c:759
#3  0xffffffff80cd6b42 in trap_fatal (frame=<value optimized out>, 
    eva=<value optimized out>) at /usr/src/sys/amd64/amd64/trap.c:875
#4  0xffffffff80cd6e19 in trap_pfault (frame=0xfffffe016f558830, usermode=0)
    at /usr/src/sys/amd64/amd64/trap.c:692
#5  0xffffffff80cd65ab in trap (frame=0xfffffe016f558830)
    at /usr/src/sys/amd64/amd64/trap.c:456
#6  0xffffffff80cbd862 in calltrap ()
    at /usr/src/sys/amd64/amd64/exception.S:232
#7  0xffffffff808da403 in softclock_call_cc (c=0xffffffff813c5b48, 
    cc=0xffffffff8156bb00, direct=0) at /usr/src/sys/kern/kern_timeout.c:701
#8  0xffffffff808da814 in softclock (arg=0xffffffff8156bb00)
    at /usr/src/sys/kern/kern_timeout.c:810
#9  0xffffffff8089450b in intr_event_execute_handlers (
    p=<value optimized out>, ie=0xfffff80002da0c00)
    at /usr/src/sys/kern/kern_intr.c:1263
#10 0xffffffff80894956 in ithread_loop (arg=0xfffff80002da6e00)
    at /usr/src/sys/kern/kern_intr.c:1276
#11 0xffffffff808921ba in fork_exit (
    callout=0xffffffff808948c0 <ithread_loop>, arg=0xfffff80002da6e00, 
    frame=0xfffffe016f558ac0) at /usr/src/sys/kern/kern_fork.c:995
#12 0xffffffff80cbdd9e in fork_trampoline ()
    at /usr/src/sys/amd64/amd64/exception.S:606
#13 0x0000000000000000 in ?? ()
Current language:  auto; currently minimal
(kgdb)
Comment 2 Robert David 2014-03-18 10:36:02 UTC
The git revisions are wrong:

I got the same also on:  a887dd1976ef3a88756e362b7933a80b0dccc608 

So the realy correct revision where it works is:

9f9257101a73a807f44a8b46452822dbab7305b0

This is revision when it worked for me (I got zfs snapshot for that
revision and used that before).

So maybe the borders are:
9f9257101a73a807f44a8b46452822dbab7305b0
a887dd1976ef3a88756e362b7933a80b0dccc608

unfortunately the difference between them are aprox one month.

Robert.
Comment 3 Ivan Klymenko 2014-03-18 20:26:34 UTC
In mailing list with the subject "Clock issues and crash on resume on
10-Stable r263062M" there method to avoid panic:

"This is actually a crash in newcons.  Try setting
kern.vt.suspendswitch to 0 as a workaround."
Comment 4 Ivan Klymenko 2014-03-19 05:51:30 UTC
fixed in :
http://svnweb.freebsd.org/changeset/base/263321
Comment 5 Aleksandr Rybalko freebsd_committer freebsd_triage 2014-04-08 22:46:41 UTC
Responsible Changed
From-To: freebsd-bugs->ray

Over to maintainer.
Comment 6 Aleksandr Rybalko freebsd_committer freebsd_triage 2014-04-08 22:53:02 UTC
Hello Robert, Ivan!

Robert,
can you please test it again?
Because commit mentioned by Ivan was not fix, but just workaround.
But later it was really fixed by r263809.

Thanks for testing!

WBW
-- 
Aleksandr Rybalko <ray@freebsd.org>
Comment 7 Robert David 2014-04-11 08:48:58 UTC
Hi Aleksandr,

I backported this commit to my stable branch and it working just fine.
No crashing.

Only issue I got is that when resume, the LVDS display just does not
initialize properly, so I have to switch to console and back (CTRL ALT
1, ALT 9). But this seems to be different issue.

Otherwise I think it is fixed.

Thanks,
Robert.


On Wed, 9 Apr 2014 00:53:02 +0300
Aleksandr Rybalko <ray@freebsd.org> wrote:

> Hello Robert, Ivan!
> 
> Robert,
> can you please test it again?
> Because commit mentioned by Ivan was not fix, but just workaround.
> But later it was really fixed by r263809.
> 
> Thanks for testing!
> 
> WBW
Comment 8 Aleksandr Rybalko freebsd_committer freebsd_triage 2014-04-11 12:57:35 UTC
On Fri, 11 Apr 2014 09:48:58 +0200
Robert David <robert.david.public@gmail.com> wrote:

> Hi Aleksandr,

Hi Robert!

> 
> I backported this commit to my stable branch and it working just fine.
> No crashing.

Thanks for testing.

> 
> Only issue I got is that when resume, the LVDS display just does not
> initialize properly, so I have to switch to console and back (CTRL ALT
> 1, ALT 9). But this seems to be different issue.

Yeah, notification about suspend/resume do not reach Xorg or drm.
I still finding a way to do it correct.

> 
> Otherwise I think it is fixed.
> 
> Thanks,
> Robert.

Thanks to you too :)

> 
> 
> On Wed, 9 Apr 2014 00:53:02 +0300
> Aleksandr Rybalko <ray@freebsd.org> wrote:
> 
> > Hello Robert, Ivan!
> > 
> > Robert,
> > can you please test it again?
> > Because commit mentioned by Ivan was not fix, but just workaround.
> > But later it was really fixed by r263809.
> > 
> > Thanks for testing!
> > 
> > WBW
> 


-- 
Aleksandr Rybalko <ray@freebsd.org>
Comment 9 Aleksandr Rybalko freebsd_committer freebsd_triage 2014-04-14 14:18:20 UTC
State Changed
From-To: open->closed

Close it one more time due to mistake.