On Thu, Jan 12, 2012 at 10:48:07AM -0500, Alan Stern wrote: > On Thu, 12 Jan 2012, Oliver Neukum wrote: > > > Am Mittwoch, 11. Januar 2012, 23:36:25 schrieb Sarah Sharp: > > > > > Ok, that's what I thought. Some folks were concerned about bad system > > > power management they have been seeing, and they were claiming the host > > > didn't need to poll an empty CD drive if the USB CD drive advertised > > > remote wakeup in its descriptors. Now I can tell them it's simply not > > > true. > > > > But there still is an inefficiency with respect to polling devices. > > If sd_open() fails with -ENOMEDIUM we go through the full > > timeout. This is exactly what we shouldn't do in case a device > > is polled at a regular frequency. > > What's needed is two different autosuspend timeouts; one for use when > media is present and one for when it isn't. Or maybe we should call > pm_runtime_dont_use_autosuspend when there's no media, which would > effectively set the timeout to 0. > > For CDs it won't make any difference because sr doesn't support > autosuspend anyway. It could be added without too much work, however. It would be a big help if it was added. It matters to Linux server distributions in particular because several server vendors have started to integrate emulated USB devices onto the server. A "BMC" device from an outside vendor attaches to a USB host port, and emulates a hub with a USB mouse, keyboard, and maybe a USB CD drive attached. Then a sys admin can remotely share a .iso file, and on the server side the CD just appears in the emulated USB CD drive. The problem is that since the BMC actually attaches to the host controller, it can impact system power management if all the emulated devices aren't suspended. A couple of Intel server vendors have gotten really cranky about the power management on systems with the EHCI rate matching hub and a BMC. Apparently power management is much worse for unsuspended HIDs under EHCI than under UHCI, since the EHCI periodic frame list keeps getting polled by the EHCI hardware, making the CPU come out of C states, etc. Async endpoints don't cause as big a power draw, but it would benefit system power management overall if they were able to be suspended. Sarah Sharp -- 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