Re: Discussion: recovery from transient disconnects | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On Wed, Sep 03, 2008 at 04:58:38PM -0400, Alan Stern wrote: > The hub driver in 2.6.27 has a feature allowing it to recover from > transient disconnections or port-enable changes. The idea is that if > either one occurs and after the debouncing period (100 ms or so) the > same device is still connected to the same port, the event is handled > as a reset rather than a disconnect. The existing usb_device isn't > removed and drivers aren't unbound. > > In theory this should make us more resilient against errors. In > practice I'm not so sure. Port-enable changes are very rare, and > disconnects normally last a lot longer than 100 ms. > > Furthermore, the recovery procedure can itself lead to problems. > While many drivers are good about detecting errors and retrying as part > of their normal operation, most don't react so robustly when an error > occurs in their probe routine. As an outstanding example, consider the > usb_generic driver, whose probe routine does little more than select a > default configuration and install it. If something goes wrong with the > Set-Config call, the call is not retried; instead the device simply > remains unconfigured. > > Now under most circumstances this is all okay. We've got a non-robust > reaction to a type of error that almost never occurs. That's fine, > except for one thing: > > These errors _do_ occur quite reliably when ehci-hcd is > loaded after ohci-hcd or uhci-hcd! > > What happens is that ehci-hcd takes over the port, disconnecting the > device from the companion controller. If the device can't run at high > speed then the port is returned to the companion controller. The > overall result is exactly that of a transient disconnection. > > A user has reported a case in which this occurred during the > usb_generic probe routine. As a result the device (a keyboard) never > got configured and consequently was nonfunctional. > > Given the significant probability of bad outcomes, together with the > fact that real transient errors are so rare, I'm starting to think we > would be better off without this new recovery feature. > > What do other people think? Should we wait for .27 to be out and see how many people complain? :) thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Home] [Linux USB Devel] [Video for Linux] [Linux Audio Users] [Photo] [Yosemite News] [Yosemite Photos] [Video Projectors] [PDAs] [Free Online Dating] [Hacking TiVo] [Linux Kernel] [Linux SCSI] [XFree86] [Devices] [Big List of Linux Books] [16.7MP]
![]() |
![]() |