In his essay “The Cathedral and the Bazaar”, Eric S. Raymond coins the phrase “given enough eyeballs, all bugs are shallow” — meaning that with enough testers and enough programmers, it is possible to diagnose and fix any software bug.
So why can’t my computer suspend and resume properly?
The concept of ‘suspend’ — or ‘sleep’, or ‘standby’ — mode, whereby the computer dumps its internal state to RAM then enters a low-power state with its processor and other hardware turned off, is not new. The ACPI standard has been kicking around for 14 years now, a very long time compared to the life cycle of an operating system. These days, with laptop use on the rise, it’s a very common thing for users to want to do. And yet resuming from suspend is still hit-and-miss.
Why do I find it more reliable in Ubuntu than openSUSE for the same base kernel? Why does GNOME fare better than KDE? Why does my WiFi sometimes not come back? Why, with Microsoft’s million- if not billion-dollar operating system budgets, with Intel and AMD and nVidia’s decades’ of driver experience, is suspend and resume still frequently an issue even on Windows?
Only Apple, with its closed hardware / software ecosystem, seems to have cracked it.
I’d hate to think of that as the only way to a bug-free existence — I’m very fond of the idea of an open ecosystem where I can run whatever software I want on whatever hardware I want. But I’m worried. Is the range of (IBM-compatible, ACPI-supporting) hardware out there just too diverse and too widely different in its support for suspend-and-resume? Is it just infeasible for software to perfectly implement it on all devices?
Has hardware created the one software bug that, for any reasonable number of eyeballs, isn’t shallow?
Linus Torvalds on ACPI – I think closed hardware really helps there. There's a frustratingly persistent meme at work that “mature” (read old) is somehow automatically a good thing…
I also found this ramble kind of though provoking, though how applicable it is to The Kernel, or how accurate it is generally I don't know.
I'm with Linus on his main problem with suspend issues, that it's really hard to diagnose a problem if you can't get at the software state once the problem occurs. But then I deal with that problem every day, so perhaps I don't have as much sympathy as I should! :D
I tend to see “mature” software at work as almost a bad thing – it usually means the original author has left, leaving behind a bunch of obscure bugs and confusing comments for whichever poor sod comes next. Hint: Often, it's me.
You think that's a worrying bug not to have been resolved yet?
My graphics card, which is an ATI model released in the last year and a half causes total boot failure in both Vista and Windows 7 unless I hit an obscure setting in the boot section of msconfig and limit it to using no more than the number of processor cores and memory I have. Which would be 4 and 8 gig.
IF WINDOWS ISN'T MANUALLY TOLD HOW MANY CPU CORES AND HOW MUCH MEMORY I HAVE IT REFUSES TO BOOT!
Somehow I am not convinced that Microsoft's billion dollar OS budget was sufficient.
tbf, I don't have a similar problem on Linux so maybe your gripe has more standing than mine.
That's… bizarre. I take it you've checked for the latest firmware – your BIOS, certainly, and I assume in this day and age that one can reflash graphics cards too.
This is pretty much a case in point for why I find closed-source software so strange these days — you've found a bug, there's just nowhere to report it.