You are not logged in.

#1 2012-04-29 18:30:50

patson
Member
Registered: 2006-08-22
Posts: 26

USB system gets stuck (because of keyboard?)

Hi.. I already posted in another thread about this issue (which turned out to be unrelated to my problem, unfortunately), and Google isn't turning up many hits, so I'm starting a new thread.

I'm running stable Arch x86-64, and for relevant hardware I've got a Logitech G510 keyboard, Logitech G9 mouse and ASUS M4N78 Pro motherboard (nForce chipset) and ASUS GeForce 9500GT. This setup was working perfectly fine, until I swapped in a new CPU and updated the BIOS (the CPU upgrade required the latest BIOS, unfortunately..). Just wanted to get that one in the clear, so that we can rule out electrical problems, if need be.

That said, first few boots after the upgrade, everything was working fine, and to be sure, I ran memtest86 for a few hours, and it came up clean. Arch was running fine. I updated all packages with pacman -Syu, which pulled in, among other things, kernel-3.2.12. After this, a USB-related problem started manifesting:

With the G510 keyboard attached, seemingly completely at random, whatever key I'd be pushing would get stuck (the system never locks up when I'm _not_ pushing a key, btw), and the only way to regain some semblance of control over the computer would be to unplug the keyboard. After this, plugging it back in will leave the keyboard without power (doesn't seem to matter what port I plug it into). Sometimes plugging _another_ keyboard (Saitek Eclipse, in case that matters) in would allow me to type for a while, until all USB devices freeze, and I need to reset the system. Sometimes no new devices would be detected. All devices plugged in at the time of the keyboard getting stuck would continue working for a while, and then suddenly stop (mouse, digitizer, USB storage).

A reboot (either from Linux, the reset button or the power switch) will return full functionality. The G510 keyboard has no problems working in Windows (on another computer). Also, the problem did not seem to manifest itself if I've got the Eclipse plugged  in (but it's bad to type on, so I don't like that as a workaround ;F). Even still, I don't believe the G510 to be the source of the problem, but rather the trigger.

I managed to capture a dmesg dump just after the keyboard got stuck, and it pointed to a crashing ohci subsystem (the disconnect is the keyboard, which I had to pull out to be able to get dmesg typed into the console using a virtual keyboard):

[32725.227394] usb 3-2: USB disconnect, device number 2
[32880.756741] INFO: task khubd:131 blocked for more than 120 seconds.
[32880.756745] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[32880.756746] khubd           D 0000000100946e63     0   131      2 0x00000000
[32880.756750]  ffff88021f033b60 0000000000000046 ffff880200000000 ffff88021f033fd8
[32880.756753]  ffff880220838e40 ffff88021f033fd8 ffff88021f033fd8 ffff88021f033fd8
[32880.756755]  ffff880222139c80 ffff880220838e40 0000000000000400 000000000001bf90
[32880.756758] Call Trace:
[32880.756771]  [<ffffffffa024a607>] ? ohci_urb_dequeue+0x77/0xc0 [ohci_hcd]
[32880.756775]  [<ffffffff81238947>] ? kobject_put+0x27/0x60
[32880.756779]  [<ffffffff813041c7>] ? put_device+0x17/0x20
[32880.756782]  [<ffffffff8145a7bf>] schedule+0x3f/0x60
[32880.756789]  [<ffffffffa0159435>] usb_kill_urb+0x75/0xb0 [usbcore]
[32880.756792]  [<ffffffff81088d70>] ? abort_exclusive_wait+0xb0/0xb0
[32880.756798]  [<ffffffffa0158505>] usb_hcd_flush_endpoint+0xa5/0x110 [usbcore]
[32880.756802]  [<ffffffffa015add0>] usb_disable_endpoint+0x60/0x90 [usbcore]
[32880.756806]  [<ffffffffa015ae46>] usb_disable_interface+0x46/0x60 [usbcore]
[32880.756810]  [<ffffffffa015d2d5>] usb_unbind_interface+0x175/0x180 [usbcore]
[32880.756814]  [<ffffffff8130810c>] __device_release_driver+0x7c/0xe0
[32880.756816]  [<ffffffff8130819c>] device_release_driver+0x2c/0x40
[32880.756818]  [<ffffffff81307c48>] bus_remove_device+0x78/0xb0
[32880.756820]  [<ffffffff8130554d>] device_del+0x12d/0x1b0
[32880.756823]  [<ffffffffa015af0f>] usb_disable_device+0xaf/0x1d0 [usbcore]
[32880.756827]  [<ffffffffa0153408>] usb_disconnect+0x98/0x130 [usbcore]
[32880.756831]  [<ffffffffa015528c>] hub_thread+0xa4c/0x12d0 [usbcore]
[32880.756833]  [<ffffffff81088d70>] ? abort_exclusive_wait+0xb0/0xb0
[32880.756837]  [<ffffffffa0154840>] ? usb_remote_wakeup+0x40/0x40 [usbcore]
[32880.756838]  [<ffffffff8108842c>] kthread+0x8c/0xa0
[32880.756841]  [<ffffffff81460134>] kernel_thread_helper+0x4/0x10
[32880.756843]  [<ffffffff810883a0>] ? kthread_worker_fn+0x190/0x190
[32880.756845]  [<ffffffff81460130>] ? gs_change+0x13/0x13

Full dmesg dump is readable at http://pastebin.com/iKY1uuSH


Any advice as to how to go about debugging this would be appreciated.

For the record, I'm running all the latest stable software now, using KDE and Synergy (though I'm not sure if that makes a difference). The problem has not gone away with the latest kernels. As suggested in a Google result, I tried setting clocksource=jiffies in the kernel options line, but that had no effect.

Last edited by patson (2012-04-29 18:35:51)

Offline

#2 2012-05-28 17:31:08

patson
Member
Registered: 2006-08-22
Posts: 26

Re: USB system gets stuck (because of keyboard?)

Since this shows up on Google when searching for this very problem, I'll update... The motherboard I was using before failed, so I went out and bought another ASUS nForce board; this time, the M4N98TD EVO. This required me to get new memory (so a memory error is somewhat ruled out) and a new SSD, on which I installed Ubuntu 12.04. The error persists (although, this time, without any dmesg error). Rebooting the machine brings the dead keyboard back to life (but nothing else does).

I'm thinking that the problem is because of some combination of G510 keyboard, Linux, nForce chipset (this problem did NOT show up on my other computer, with AMD chipset), Synergy and/or KDE. Of course, it could also be a PSU-related issue, since that's pretty much the only significant part of the setup I haven't replaced (suitable voltage fluctuation could cause the USB device to drop and Linux to just blacklist it.. but you'd think this would show up in some logs?).

Offline

Board footer

Powered by FluxBB