On 05/20/2012 08:13 PM, Leonid Isaev wrote:
On Sun, 20 May 2012 12:36:16 +0200 Manne Merak<mannemerak@gmail.com> wrote:
On 05/17/2012 01:11 AM, Leonid Isaev wrote:
On Wed, 16 May 2012 23:50:06 +0200 Manne Merak<mannemerak@gmail.com> wrote:
Hi, Couple of updates ago suspend to RAM stopped working. Looking at the pm-suspend.log (below) file shows that it gets stuck at unloading uhci_hcd? I can unload and load the module by hand just fine. Anyone else have this? Hmm, 75modules should print something like "done" or "fail". What do you mean by stopped working? What configuration do you have in /etc/pm/config.d/*?
Ok, some more debugging. The first suspend-RAM works file. Checked the pm-suspend.log and all gets unloaded just fine. On second suspend, I get the mentioned stuck at unloading uhci_hcd (leaving it a while gives):
------- Running hook /usr/lib/pm-utils/sleep.d/75modules suspend suspend: Unloading kernel module uhci_hcd.../usr/lib/pm-utils/functions: line 84: 26341 Killed modprobe -r "$1" I am puzzled by this... really. Do you get anything at all in syslog after this? Or syslog is already stopped at this point?
/usr/lib/pm-utils/functions: line 89: log: command not found WTF??? This is a 2 year old bug in pm-utils. OpenSUSE 11.3 fixed that in 1.3.0. Please see if this fix gets rid of the "log" error: <http://lists.freedesktop.org/archives/pm-utils/2010-September/002219.html>.
Failed. Unloading kernel module ehci_hcd... ----
Now stuck at unloading ehci_hcd.
I get the same behaviour trying to unload uhci_hcd or ehci_hcd after the first successfull suspend and restore. You mean "unload manually", right?
There's more; a "oops" in the system log:
[209624.386398] BUG: unable to handle kernel paging request at 6d0d0000 [209624.386404] IP: [<c04ad62a>] _raw_spin_lock_irqsave+0x2a/0x50 [209624.386412] *pde = 00000000 [209624.386414] Oops: 0002 [#1] PREEMPT SMP [209624.386418] Modules linked in: uhci_hcd(-) ehci_hcd usb_storage uas rfcomm btusb hidp bnep bluetooth fuse vboxnetadp(O) vboxnetflt(O) usbhid uvcvideo hid videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media nvidia(PO) snd_hda_codec_idt snd_hda_intel firewire_ohci joydev b44 snd_hda_codec r852 sm_common nand snd_pcm nand_ecc nand_ids arc4 iwl3945 iwlegacy ssb snd_page_alloc r592 mtd iTCO_wdt firewire_core crc_itu_t pcmcia mii pcmcia_core mac80211 sdhci_pci intel_agp sdhci intel_gtt mmc_core cfg80211 agpgart i2c_i801 i2c_core snd_hwdep snd_timer snd memstick iTCO_vendor_support serio_raw dell_wmi psmouse sparse_keymap soundcore wmi dell_laptop usbcore usb_common rfkill evdev thermal dcdbas button battery ac video vboxdrv(O) cpufreq_powersave acpi_cpufreq mperf processor ext4 crc16 jbd2 mbcache sr_mod sd_mod cdrom pata_acpi ata_generic ata_piix ahci libahci libata scsi_mod [last unloaded: ehci_hcd] [209624.386476] [209624.386479] Pid: 26341, comm: modprobe Tainted: P O 3.3.6-1-ARCH #1 Dell Inc. Vostro 1700 /0HX767 [209624.386483] EIP: 0060:[<c04ad62a>] EFLAGS: 00010002 CPU: 0 [209624.386486] EIP is at _raw_spin_lock_irqsave+0x2a/0x50 [209624.386488] EAX: 00000100 EBX: 6d0d0000 ECX: 6d0d0000 EDX: e002dd10 [209624.386490] ESI: 00000206 EDI: f24ca4b4 EBP: e002dcf0 ESP: e002dce8 [209624.386492] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 [209624.386494] Process modprobe (pid: 26341, ti=e002c000 task=c5aeca80 task.ti=e002c000) [209624.386496] Stack: [209624.386497] 6d0d0000 6d0d0000 e002dd08 c0142d39 e002dd10 f24ca4a8 00000000 ffffffff [209624.386503] e002dd20 c0142eca f8af756a f24ca400 00000000 ecdfbc94 e002dd38 f8af7461 [209624.386508] ecdfbc94 f24ca400 ecdfbcd8 ecdfbc94 e002dd58 f8af7694 ecdfb808 ecdfb808 [209624.386513] Call Trace: [209624.386519] [<c0142d39>] lock_timer_base.isra.33+0x29/0x50 [209624.386522] [<c0142eca>] del_timer+0x2a/0xe0 [209624.386529] [<f8af756a>] ? hci_conn_del+0x12a/0x1f0 [bluetooth] [209624.386534] [<f8af7461>] hci_conn_del+0x21/0x1f0 [bluetooth] [209624.386538] [<f8af7694>] hci_conn_hash_flush+0x64/0xb0 [bluetooth] [209624.386543] [<f8af3746>] hci_dev_do_close+0x96/0x290 [bluetooth] [209624.386548] [<f8af5958>] hci_unregister_dev+0x48/0x140 [bluetooth] [209624.386551] [<f8a9ab4f>] btusb_disconnect+0x4f/0xb0 [btusb] [209624.386559] [<f8ec0a5c>] usb_unbind_interface+0x3c/0x140 [usbcore] [209624.386564] [<c038801d>] __device_release_driver+0x5d/0xb0 [209624.386566] [<c0388094>] device_release_driver+0x24/0x40 [209624.386569] [<c0387bf5>] bus_remove_device+0xa5/0xd0 [209624.386572] [<c0385d55>] device_del+0xe5/0x150 [209624.386578] [<f8ebeb19>] usb_disable_device+0x89/0x1a0 [usbcore] [209624.386584] [<f8eb8030>] usb_disconnect+0x70/0xe0 [usbcore] [209624.386590] [<f8eb801f>] usb_disconnect+0x5f/0xe0 [usbcore] [209624.386595] [<f8eb801f>] usb_disconnect+0x5f/0xe0 [usbcore] [209624.386602] [<f8eba94c>] usb_remove_hcd+0x9c/0x120 [usbcore] [209624.386608] [<f8ec8d78>] usb_hcd_pci_remove+0x48/0xb0 [usbcore] [209624.386611] [<c02fdbff>] pci_device_remove+0x2f/0xe0 [209624.386614] [<c038801d>] __device_release_driver+0x5d/0xb0 [209624.386616] [<c038864f>] driver_detach+0x8f/0xa0 [209624.386619] [<c0387ef2>] bus_remove_driver+0x62/0xa0 [209624.386621] [<c0388b49>] driver_unregister+0x49/0x80 [209624.386624] [<c02febd2>] pci_unregister_driver+0x32/0x80 [209624.386627] [<f8070ce0>] uhci_hcd_cleanup+0xd/0x35 [uhci_hcd] [209624.386632] [<c018e5af>] sys_delete_module+0x11f/0x280 [209624.386635] [<c022b920>] ? fput+0x130/0x1d0 [209624.386639] [<c0227984>] ? filp_close+0x54/0x80 [209624.386642] [<c0227a22>] ? sys_close+0x72/0xc0 [209624.386645] [<c04ae69f>] sysenter_do_call+0x12/0x28 [209624.386647] Code: 00 55 89 e5 56 53 3e 8d 74 26 00 89 c1 9c 58 8d 74 26 00 89 c6 fa 90 8d 74 26 00 89 e0 25 00 e0 ff ff 83 40 14 01 b8 00 01 00 00<f0> 66 0f c1 01 0f b6 dc 38 c3 74 0b 66 90 f3 90 0f b6 11 38 da [209624.386677] EIP: [<c04ad62a>] _raw_spin_lock_irqsave+0x2a/0x50 SS:ESP 0068:e002dce8 [209624.386680] CR2: 000000006d0d0000 [209624.386683] ---[ end trace 2d604d3b1307f2ba ]--- [209624.386686] note: modprobe[26341] exited with preempt_count 1
Seems like some kind of IRQ problem. Perhaps someone more knowledgeable can tell whether this is kernel's or kmod's fault...
Finally, have you actually tried to remove *_hcd from MODULE_SUSPEND and see if it works?
Yes, removing the *_hcd modules leaves the resumed machine without working USB. Trying then to unload the modules manually doesnt work, rmmod never comes back. I see rmmod crash traces in syslog. This definitely came with a kernel (module) update. I will wait it out and see if it gets resolved at the next round of updates. Manne