I have Fedora 14 32-bit installed on a HP EliteBook 8540w (kernel version2.6.35.12-90.fc14.i686.PAE). I know F14 is EOL, but I think I have a generic question.
Currently, the entire USB system seems to be hung. Connecting and disconnecting devices on USB 2 or 3 ports produce no message in /var/log/messages. All (external) devices are currently disconnected, but there were several devices connected when the problem started (mouse, keyboard, serial port, USB flash drive, USB disc drive), and I had just finished writing a file to the USB 3 flash drive and removing it prior to the problem starting. "lsusb" and "cat /proc/bus/usb/devices" hang, as do "modprobe -r usb_storage" or similar commands. Here is a subset of "lsmod" output:
Code:
# lsmod | grep -e 'hc[id]' -e usb
usblp 8799 0
xhci_hcd 80405 0
usb_storage 35831 0
btusb 12522 3
bluetooth 73233 11 rfcomm,sco,bnep,l2cap,btusb
sdhci_pci 6278 0
sdhci 15773 1 sdhci_pci
firewire_ohci 18005 0
mmc_core 53242 1 sdhci
firewire_core 37917 1 firewire_ohci
Interestingly, looking at the source seems to indicate that it's trying to unload xhci_hcd and usb_storage (probably because I tried to remove them):
Code:
4# grep -e 'hc[id]' -e usb /proc/modules
usblp 8799 0 - Live 0xf7bfc000
xhci_hcd 80405 0 - Unloading 0xf7bb1000
usb_storage 35831 0 - Unloading 0xf7cb5000
btusb 12522 3 - Live 0xf895a000
bluetooth 73233 11 rfcomm,sco,bnep,l2cap,btusb, Live 0xf86d2000
sdhci_pci 6278 0 - Live 0xf7b61000
sdhci 15773 1 sdhci_pci, Live 0xf7b51000
firewire_ohci 18005 0 - Live 0xf7b3e000
mmc_core 53242 1 sdhci, Live 0xf7b1c000
firewire_core 37917 1 firewire_ohci, Live 0xf7aea000
CPU usage is normal (nothing running away) but the loadavg is about 6 right now, due to all the hung processes:
Code:
2> ps -efl | grep '^. D '
5 D root 42 2 0 80 0 - 0 kthrea Jan26 ? 00:00:00 [khubd]
0 D me 1854 2911 0 80 0 - 1137 usb_de 08:49 pts/2 00:00:00 less /proc/bus/usb/devices
4 D root 4078 4068 0 80 0 - 553 driver 09:06 pts/1 00:00:00 modprobe -r usb_storage
0 D root 7481 5589 0 80 0 - 661 usbdev 09:35 pts/26 00:00:00 lsusb
4 D root 32111 1 0 80 0 - 553 usb_di Feb09 pts/0 00:00:00 modprobe -r xhci_hcd
I'm afraid I'm just going to have to bite the bullet and reboot this thing, since I have to get back to doing something productive with it -- but my generic question is:
Is there a way to reset the both/all USB drivers (ehci, xhci) or whatever else needs to be reset in this kind of situation? Googl'ing, I've seen suggestions to remove and re-insert the usb modules, but that just hangs in my case. And/Or, is there a way to debug this -- for example, to find why some modules can't be removed (aside from when it's obvious from lsmod that other modules are using them) ?
Thanks