On Mon, 12 Mar 2007, Jiri Slaby wrote: > Bisecting figured out the culprit: > Commit: 17230acdc71137622ca7dfd789b3944c75d39404 > Author: Alan Stern <[EMAIL PROTECTED]> Mon, 19 Feb 2007 15:52:45 -0500 > > UHCI: Eliminate asynchronous skeleton Queue Headers > > This patch (as856) attempts to improve the performance of uhci-hcd by > removing the asynchronous skeleton Queue Headers. They don't contain > any useful information but the controller has to read through them at > least once every millisecond, incurring a non-zero DMA overhead. > > Now all the asynchronous queues are combined, along with the period-1 > interrupt queue, into a single list with a single skeleton QH. The > start of the low-speed control, full-speed control, and bulk sublists > is determined by linear search. Since there should rarely be more > than a couple of QHs in the list, the searches should incur a much > smaller total load than keeping the skeleton QHs. > > Signed-off-by: Alan Stern <[EMAIL PROTECTED]> > Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> > > > -mm minus (only) this one is OK.
Okay, here's how to track this down. I assume that even after the keyboard stops working you can access the machine via a network connection. So turn on CONFIG_USB_DEBUG, CONFIG_USB_MON, and CONFIG_DEBUG_FS. Then modprobe uhci-hcd with debug=2, and mount a debugfs filesystem. Before using the keyboard, start a cat process to capture the usbmon output for the keyboard's bus (see the instructions for usbmon in Documentation/usb/usbmon.txt). After hanging the keyboard, get a copy of the appropriate controller's file in the uhci/ subdirectory of the debugfs filesystem. Post it along with the usbmon log, and I'll try to figure out what happened. Alan Stern - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/