Comment 8 for bug 1634737

Revision history for this message
Michael Thayer (michael-thayer) wrote :

The problem is not caused by any changes in the Linux OHCI or USB code (and obviously the VirtualBox USB emulation did not change either). It's almost certainly triggered by the timer wheel rework which went into the 4.8 kernel.

There is a watchdog routine in the OHCI driver which is meant to be run every 250 milliseconds and check whether the frame counter is updating (which happens at most every millisecond). In Linux 4.8, the watchdog routine can be run again after 4 milliseconds or possibly even less. If it sees the same frame counter value twice, it declares the HC dead and unloads the driver. That is the problem.

The "irq 22: nobody cared" and subsequent "Disabling IRQ #22" errors are caused by a bug in VirtualBox which is only triggered by unloading the OHCI driver. The "frame counter not updating" error is the real issue and highly likely to be an unintentional change in Linux 4.8 behavior. As far as the OHCI driver is concerned, it's OK to run the watchdog routine later than requested, but it must not be run too soon.

And yes, https://bugs.launchpad.net/ubuntu/+bug/1635012 is almost certainly the same problem occurring on physical hardware.