Linked by Thom Holwerda on Fri 23rd Aug 2013 08:37 UTC

Pretty much for my entire career in Linux USB (eight years now?), we've been complaining about how USB device power management just sucks. We enable auto-suspend for a USB device driver, and find dozens of different USB devices that simply disconnect from the bus when auto-suspend is enabled.

For years, we've blamed those devices for being cheap, crappy, and broken. We talked about blacklists in the kernel, and ripped those out when they got too big. We've talked about whitelists in userspace, but not many distros have time to cultivate such lists.

It turns out it's not always the device's fault.

Fascinating bug.

Thread beginning with comment 570395
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: The fix
by Fergy on Fri 23rd Aug 2013 09:08 UTC in reply to "The fix"
Member since:

Will it actually be fixed properly now that it's out, or will the devs just stick to the 20ms work-around?

From the article:
This patch is not the "real fix" for solving the issues with the USB core, and I despise fixing things by tweaking timeout values, so I'll have to work on a real fix tomorrow. But at least there's a light at the end of the tunnel for USB device power management.

Reply Parent Score: 8

RE[2]: The fix
by osvil on Fri 23rd Aug 2013 10:16 in reply to "RE: The fix"
osvil Member since:

What is kind of fun is that, devices that somehow worked on other systems where dismissed as faulty. Usually if something work for others but not for your system the first suspicion should go to your system. It could be that the device is faulty and that the problems arise in your context, but over my career I've found that in many cases is the other way around.

It is like bugs in compilers. I've come across some, for sure. But most times I thought it was a compiler error, it was actually bad code on my side.

Reply Parent Score: 6

RE[3]: The fix
by Ithamar on Fri 23rd Aug 2013 11:03 in reply to "RE[2]: The fix"
Ithamar Member since:

In general, I agree with you, but in practice, when it comes to USB, there are so little devices actually _truly_ following the specs that I can imagine things being dismissed, mostly for being USB ;-)

Reply Parent Score: 5

RE[3]: The fix
by deathshadow on Sat 24th Aug 2013 08:38 in reply to "RE[2]: The fix"
deathshadow Member since:

What is kind of fun is that, devices that somehow worked on other systems where dismissed as faulty. Usually if something work for others but not for your system the first suspicion should go to your system.

... and you just outlined a behavior that has been RAMPANT among *nix developers for DECADES now. You are quite correct -- if the same hardware using software built off the same spec doesn't work in one, but does in all others, the implementation should be the FIRST thing you look at.

I'd not be surprised if ALL the devices that have problems in Linsux, even when ALLEGEDLY supported are not victim to similar problems. Lord knows two thirds of what I own for hardware is either crippled far below it's full capabilities (video for example) or doesn't work at all (networking, sound, APM/ACPI controlled cooling) trying to use any *nix as a desktop OS -- which is only PART of why I consider 'mainstream' Linux and it's BSD kin to be pathetically useless crippleware as a desktop OS.

You see the same thing in Web development, where people writing websites will blame the browsers for their own ineptitude... be it jumping the gun on specifications not even out of draft, using outdated methodologies proven time and time again not to work, slapping endless "gee ain't it neat" crap at a site before they even have the core functionality working, or worst of all just can't pull their heads out of 1997's arse using things we've been told for fifteen blasted years to STOP USING!

Really across the board in programming this is a rampant problem I've seen time and time again -- where the people writing software don't actually seem to take the time to understand the language they are writing in, the specifications they are writing against for hardware, or even the point of the task they are trying to implement.

... and mostly the cause seems to be an apathy that finds it's roots in laziness, comfort, and wishful thinking. Of course, when you dare to point these things out you're an 'alarmist' or 'unfairly harsh' -- reality is harsh, deal with it! Have a problem with that, do the world a favor and go flip burgers for a living!

Helen: Daria, do you have to cast everything in such a negative light?

Daria: You mean the harsh light of reality?

Edited 2013-08-24 08:44 UTC

Reply Parent Score: 5