USB resume problem with IBM dock
Hi,
I hope I've come to the right place; I'm going based on the information in my kernel's MAINTAINERS file.
I have been using suspend2 with a 2.6.18 kernel, my Thinkpad T60p, and a Thinkpad Advanced dock. When resuming (from disk), suspend2 puts all the USB devices into a suspended state so they're consistent with the state at suspend time. If I have any devices plugged into the dock's USB ports, it's very common that the devices fail to enter a suspended state (or so the APIs report). When that happens, suspend2 forces a segfault and all heck breaks loose (log excerpt appended) -- suffice it to say I lose my suspended state, all the filesystems need to be checked, and often it takes an additional reboot just to make everything healthy again -- so it's really important to me to address this problem. Please let me know if there's anything I can do to help track this down.
Thanks,
Dave
--- /var/log/syslog excerpt ---
Oct 11 22:11:40 pereiro kernel: [ 7.004000] Atomic restore preparation Oct 11 22:11:40 pereiro kernel: [ 7.008000] Freezing cpus ... Oct 11 22:11:40 pereiro kernel: [ 7.080000] usb 5-6.1: new low speed USB device using ehci_hcd and address 5 Oct 11 22:11:40 pereiro kernel: [ 7.128000] CPU 1 is now offline Oct 11 22:11:40 pereiro kernel: [ 7.128000] SMP alternatives: switching to UP code Oct 11 22:11:40 pereiro kernel: [ 7.128000] CPU1 is down Oct 11 22:11:40 pereiro kernel: [ 7.192000] usb 5-6.1: configuration #1 chosen from 1 choice Oct 11 22:11:40 pereiro kernel: [ 7.392000] usb 5-6.2: new full speed USB device using ehci_hcd and address 6 Oct 11 22:11:40 pereiro kernel: [ 7.484000] usb 5-6.2: configuration #1 chosen from 1 choice Oct 11 22:11:40 pereiro kernel: [ 7.484000] suspend_device(): usb_generic_suspend+0x0/0x15c [usbcore]() returns -16 Oct 11 22:11:40 pereiro kernel: [ 7.484000] usbcore: registered new driver hiddev Oct 11 22:11:40 pereiro kernel: [ 7.484000] Could not suspend device 5-6: error -16 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Some devices failed to suspend Oct 11 22:11:40 pereiro kernel: [ 7.492000] ------------[ cut here ]------------ Oct 11 22:11:40 pereiro kernel: [ 7.492000] kernel BUG at kernel/power/atomic_copy.c:496! Oct 11 22:11:40 pereiro kernel: [ 7.492000] invalid opcode: 0000 [#1] Oct 11 22:11:40 pereiro kernel: [ 7.492000] PREEMPT SMP Oct 11 22:11:40 pereiro kernel: [ 7.492000] Modules linked in: usbhid dm_mod ide_generic ehci_hcd uhci_hcd usbcore piix generic sd_mod thermal processor fan fbcon tileblit font bitblit softcursor Oct 11 22:11:40 pereiro kernel: [ 7.492000] CPU: 0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP: 0060:[suspend_atomic_restore+487/544] Not tainted VLI Oct 11 22:11:40 pereiro kernel: [ 7.492000] EFLAGS: 00010246 (2.6.18-local-20060823 #2) Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP is at suspend_atomic_restore+0x1e7/0x220 Oct 11 22:11:40 pereiro kernel: [ 7.492000] eax: 00004010 ebx: 00000000 ecx: 00000000 edx: 00000002 Oct 11 22:11:40 pereiro kernel: [ 7.492000] esi: 00000001 edi: 00000001 ebp: c0393270 esp: dfcadef0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] ds: 007b es: 007b ss: 0068 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Process busybox (pid: 2428, ti=dfcac000 task=c21ed290 task.ti=dfcac000) Oct 11 22:11:40 pereiro kernel: [ 7.492000] Stack: c034fc04 c034cd8f 00000001 00000001 c014c6ee 00000000 c014c921 00000000 Oct 11 22:11:40 pereiro kernel: [ 7.492000] c014c7a7 c014e9f3 00000000 c13fb860 fffa8278 00000000 00000000 00000001 Oct 11 22:11:40 pereiro kernel: [ 7.492000] df802a40 00000001 00000001 df802a54 c01cc84c c03931b8 c0393270 dfdc3000 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Call Trace: Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend_resume+110/272] suspend_resume+0x6e/0x110 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend_start_anything+81/192] suspend_start_anything+0x51/0xc0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [__suspend_try_resume+23/48] __suspend_try_resume+0x17/0x30 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend2_attr_store+99/688] suspend2_attr_store+0x63/0x2b0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [sysfs_write_file+156/240] sysfs_write_file+0x9c/0xf0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [vfs_write+222/448] vfs_write+0xde/0x1c0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [sys_write+75/128] sys_write+0x4b/0x80 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [syscall_call+7/11] syscall_call+0x7/0xb Oct 11 22:11:40 pereiro kernel: [ 7.492000] Code: 16 00 0f 0b 13 02 74 cd 34 c0 83 c4 08 b8 01 00 00 00 5e 5f c3 c7 04 24 04 fc 34 c0 e8 23 5f fd ff a1 04 2d 39 c0 f6 c4 10 75 17 <0f> 0b f0 01 74 cd 34 c0 e9 6a fe ff ff e8 37 82 ff ff e9 47 fe Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP: [suspend_atomic_restore+487/544] suspend_atomic_restore+0x1e7/0x220 SS:ESP 0068:dfcadef0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] <6>JFS: nTxBlock = 8192, nTxLock = 65536
Signature · 3 lines
Dave Abrahams Boost Consulting www.boost-consulting.com
Quoted 20 lines · On Thu, 12 Oct 2006 00:02:42 -0400 David Abrahams <[email protected]>…
Hi,
I hope I've come to the right place; I'm going based on the information in my kernel's
MAINTAINERSfile.I have been using suspend2 with a 2.6.18 kernel, my Thinkpad T60p, and a Thinkpad Advanced dock. When resuming (from disk), suspend2 puts all the USB devices into a suspended state so they're consistent with the state at suspend time. If I have any devices plugged into the dock's USB ports, it's very common that the devices fail to enter a suspended state (or so the APIs report). When that happens, suspend2 forces a segfault and all heck breaks loose (log excerpt appended) -- suffice it to say I lose my suspended state, all the filesystems need to be checked, and often it takes an additional reboot just to make everything healthy again -- so it's really important to me to address this problem. Please let me know if there's anything I can do to help track this down.
Quoted 3 lines
Thanks,
Dave
Hi Dave,
Does this happen when you have booted inside the dock station and then suspend to disk, then resume? Or is it something like, boot outside the dock station suspend to disk, resume inside dock? Can you be more specific about how to duplicate the problem?
Thanks,
Kristen
Quoted 49 lines
---
/var/log/syslogexcerpt ---Oct 11 22:11:40 pereiro kernel: [ 7.004000] Atomic restore preparation Oct 11 22:11:40 pereiro kernel: [ 7.008000] Freezing cpus ... Oct 11 22:11:40 pereiro kernel: [ 7.080000] usb 5-6.1: new low speed USB device using ehci_hcd and address 5 Oct 11 22:11:40 pereiro kernel: [ 7.128000] CPU 1 is now offline Oct 11 22:11:40 pereiro kernel: [ 7.128000] SMP alternatives: switching to UP code Oct 11 22:11:40 pereiro kernel: [ 7.128000] CPU1 is down Oct 11 22:11:40 pereiro kernel: [ 7.192000] usb 5-6.1: configuration #1 chosen from 1 choice Oct 11 22:11:40 pereiro kernel: [ 7.392000] usb 5-6.2: new full speed USB device using ehci_hcd and address 6 Oct 11 22:11:40 pereiro kernel: [ 7.484000] usb 5-6.2: configuration #1 chosen from 1 choice Oct 11 22:11:40 pereiro kernel: [ 7.484000] suspend_device(): usb_generic_suspend+0x0/0x15c [usbcore]() returns -16 Oct 11 22:11:40 pereiro kernel: [ 7.484000] usbcore: registered new driver hiddev Oct 11 22:11:40 pereiro kernel: [ 7.484000] Could not suspend device 5-6: error -16 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Some devices failed to suspend Oct 11 22:11:40 pereiro kernel: [ 7.492000] ------------[ cut here ]------------ Oct 11 22:11:40 pereiro kernel: [ 7.492000] kernel BUG at kernel/power/atomic_copy.c:496! Oct 11 22:11:40 pereiro kernel: [ 7.492000] invalid opcode: 0000 [#1] Oct 11 22:11:40 pereiro kernel: [ 7.492000] PREEMPT SMP Oct 11 22:11:40 pereiro kernel: [ 7.492000] Modules linked in: usbhid dm_mod ide_generic ehci_hcd uhci_hcd usbcore piix generic sd_mod thermal processor fan fbcon tileblit font bitblit softcursor Oct 11 22:11:40 pereiro kernel: [ 7.492000] CPU: 0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP: 0060:[suspend_atomic_restore+487/544] Not tainted VLI Oct 11 22:11:40 pereiro kernel: [ 7.492000] EFLAGS: 00010246 (2.6.18-local-20060823 #2) Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP is at suspend_atomic_restore+0x1e7/0x220 Oct 11 22:11:40 pereiro kernel: [ 7.492000] eax: 00004010 ebx: 00000000 ecx: 00000000 edx: 00000002 Oct 11 22:11:40 pereiro kernel: [ 7.492000] esi: 00000001 edi: 00000001 ebp: c0393270 esp: dfcadef0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] ds: 007b es: 007b ss: 0068 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Process busybox (pid: 2428, ti=dfcac000 task=c21ed290 task.ti=dfcac000) Oct 11 22:11:40 pereiro kernel: [ 7.492000] Stack: c034fc04 c034cd8f 00000001 00000001 c014c6ee 00000000 c014c921 00000000 Oct 11 22:11:40 pereiro kernel: [ 7.492000] c014c7a7 c014e9f3 00000000 c13fb860 fffa8278 00000000 00000000 00000001 Oct 11 22:11:40 pereiro kernel: [ 7.492000] df802a40 00000001 00000001 df802a54 c01cc84c c03931b8 c0393270 dfdc3000 Oct 11 22:11:40 pereiro kernel: [ 7.492000] Call Trace: Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend_resume+110/272] suspend_resume+0x6e/0x110 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend_start_anything+81/192] suspend_start_anything+0x51/0xc0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [__suspend_try_resume+23/48] __suspend_try_resume+0x17/0x30 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [suspend2_attr_store+99/688] suspend2_attr_store+0x63/0x2b0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [sysfs_write_file+156/240] sysfs_write_file+0x9c/0xf0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [vfs_write+222/448] vfs_write+0xde/0x1c0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [sys_write+75/128] sys_write+0x4b/0x80 Oct 11 22:11:40 pereiro kernel: [ 7.492000] [syscall_call+7/11] syscall_call+0x7/0xb Oct 11 22:11:40 pereiro kernel: [ 7.492000] Code: 16 00 0f 0b 13 02 74 cd 34 c0 83 c4 08 b8 01 00 00 00 5e 5f c3 c7 04 24 04 fc 34 c0 e8 23 5f fd ff a1 04 2d 39 c0 f6 c4 10 75 17 <0f> 0b f0 01 74 cd 34 c0 e9 6a fe ff ff e8 37 82 ff ff e9 47 fe Oct 11 22:11:40 pereiro kernel: [ 7.492000] EIP: [suspend_atomic_restore+487/544] suspend_atomic_restore+0x1e7/0x220 SS:ESP 0068:dfcadef0 Oct 11 22:11:40 pereiro kernel: [ 7.492000] <6>JFS: nTxBlock = 8192, nTxLock = 65536Signature · 3 lines
Dave Abrahams Boost Consulting www.boost-consulting.com
Quoted 1 line · Kristen Carlson Accardi
Hi Dave,
Hi Kristen,
Quoted 2 lines
Does this happen when you have booted inside the dock station and then suspend to disk, then resume?
Yes.
As a matter of fact, I can get resume to succeed by first unplugging all the USB devices while the machine is suspended.
Quoted 3 lines
Or is it something like, boot outside the dock station suspend to disk, resume inside dock? Can you be more specific about how to duplicate the problem?
Tried above. If you want more specificity than that, I think I'll need some more specific questions, because at this point I don't know what more to tell you.
I very much appreciate your attention to this issue :)
Signature · 3 lines
Dave Abrahams Boost Consulting www.boost-consulting.com