I'm putting the finishing touches on the new EHCI scheduler and
noticed an interesting 'problem' in shutdown.  In practice it usually
doesn't work out to being a bug, but it appears to be unintentional
and potentially problematic on slow CPUs when a hub with lots of
devices is detached.

In summary:

Disconnecting a hub/device causes two things to happen at the same time:

1) usb_disconnect is called on the root device.
2) each active transfer descriptor throws an interrupt/error each time
it comes up in the periodic schedule.

Usually the CPU is fast enough to win the race as the interrupts pour
in and get everything shut down before the magic number of ten
interrupt retries cause the kernel to kill off the host controller and
the interrupt its on.  However, any syslogging in the irq handler
slows things down enough that the interrupts usually win the race and
the only way to get usb back is to reboot (Is there a way to
force-reenable an interrupt line?). If this doesn't sound familiar,
I'll paste the syslogs.

Also, David: I have an initial new scheduler patch ready to go.  Any
guidelines on how to submit?  I have to admit, it's a monster; there
are only a few tiny pieces that could be seperated out into smaller
patches as it's a fairly complete rewrite of ehci-shed.c.  Obviously,
this is a RFC/please test submission, no patch that large should be
considered for production without thorough vetting.

Monty

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to