View Single Post
Old 07-02-10, 05:59 PM   #19
Registered User
Join Date: Sep 2002
Posts: 623
Default [PATCH] Re: Geforce 8200 users, I need your help with finding usb hanging issue

My official bug report:
Except my patch there is no any workaround. I have exactly the same bug as you.
I reported the bug to Nvidia and we had some information exchange about this bug.
I do not know if I'm allowed to talk about it so better ask someone from Nvidia Linux team about usb ohci hanging bug in MCP78S chipset. Maybe someone from Nvidia will say something here because this is growing problem as people upgrade their PCs to nForce 7xx family.

You will find my patch attached below.
It fixes:
+hang on usb plug in chance to avoid the bug: 99%
+hang during medium speed transfers (adsl usb modems, usb storages) 90% chance to avoid the bug
+hang during low speed transfers (usb keyboard and mouse) 98% chance to avoid the bug
It does not fixes:
-usb hang after few minutes of heavy and continuous usb traffic devices: usb 1.1 audio, movie cameras, usb radio.

This patch is experimental. Test it before use to make sure it does not break anything else.
Linux by default uses fasteoi interrupt handler. This patch switches to level interrupt handler to recreate windows behavior for interrupts. Slower but less hangs. I do not recommend using this patch. I use it since few months and except occasional hangs it works for me.

How to use the patch:
Patch kernel sources you have. I designed this patch for kernel but it can be applied on or any other 2.6 kernel with less or more modifications required. After patching, building and installing kernel add this option to kernel boot parameters: nofasteoiapic and reboot Linux.

How to see if the patch is active:
cat /proc/interrupts
If you see: IO-APIC-level patch is active.
If you see: IO-APIC-fasteoi or XT-PIC-XT it is not.

Recommended solution which workarounds the bug in 100%:
Buy and install external PCI/PCI-E card with usb ports. You can safely use mainboard usb connectors only for usb 2.0 devices. If you have usb 1.1 only devices - use connectors on PCI/PCI-E external usb card.
Attached Files
File Type: bz2 io_apic.patch.bz2 (1.1 KB, 72 views)
zbiggy is offline   Reply With Quote