Ladies and gentlemen, after much experimentation, I have made a remarkable discovery. Perhaps the very first case of a sentient AI has been discovered, sitting right under our noses, in the Linux Kernel. With such a complicated codebase that has evolved greatly over the years, there are certainly more surprising places for it to spring up, but it’s still quite unexpected.
And where, specifically, has this sentience manifested itself? The suspend/resume code.
See now, like many of you, I’ve dealt with the instabilities of suspend/resume. I’ve considered it to just be buggy, unreliable, and possibly incompatible with my hardware. That is, until I realized that there’s a pattern. One that began to make a sort of sense.
A couple months back, I gave suspend/resume another shot, and to my surprise it worked. I figured that Ubuntu 10.04 finally fixed it, but it still wasn’t perfect. I still noticed problems.
The first thing I noticed was that when I unsuspended at work, I couldn’t use my volume keys. Everything else was fine, but my laptop’s volume keys didn’t register as a key press on anything. If I suspended again and brought it back home, the keys would work fine. If I suspended at home and resumed at home, I wouldn’t have the volume key problem. Weird, but just buggy, right?
It was a couple weekends ago when I suspended my laptop to take it somewhere. It wouldn’t suspend at all. Just hard-locked. This continued until the week, when it worked again. Last weekend? Same problem, couldn’t suspend. Monday, it worked fine.
It was then that I realized suspend/resume was breaking deliberately! See, my laptop feels more comfortable at home, less so at work but it tolerates it (with some complaining), but absolutely doesn’t want to leave during the weekend. It’s like a cat that just wants to be in a familiar environment, selfishly vying for your attention through mischievous acts. Look at it hard enough and the pattern emerges. It’s undeniable.
That got me thinking. What other possible instances of AI have we been misconstruing as bugs or random glitches? All those inter-connected street lights that occasionally shut off as you walk underneath them? Maybe they’re just shy, or they hate you. Maybe NES cartridges just found being blown stimulating.
So remember guys. Windows suspend/resume may work just fine. Mac too. But Linux’s suspend/resume isn’t a buggy pile of crap. It’s an intelligent buggy pile of crap, that just wants to be loved.
I’m sorry, Dave. I’m afraid I can’t do that
I was listening to “Half Remembered Dream” (Inception OST) while reading this and went O.O
Not quite what I expected from the headline (via Reddit*) but very funny! Thanks for this interesting new perspective on the steaming pile of **** known as Linux suspend/resume 🙂
“It’s an intelligent buggy pile of crap, that just wants to be loved.”
Can’t say the same for ACPI.
I’d look at your combination of hardware. I’ve had three different laptops since Warty Warthog and have never had a problem suspending. In fact it’s always worked better than I expected.
I’m not sure what my magic combination has been. I’ve had Intel and AMD cpus in these. One common factor is I’ve always used Nvidia graphics hardware with the binary driver.
To balance this rant, I’d take this space to thank and congratulate the linux devs who got this all working.
Maybe you just need to learn how to actually configure suspend/resume correctly. PEBKAC.
I guess the kernel in Fedora has no feelings =P
Are you perhaps using a different power supply at work? Is the temperature different? Humidity? I would first make sure it’s not a hardware problem. Isolate any changes in physical conditions in your home and work environments. Experiment with a few other environments eg. outdoors on a dry day, outdoors in a thunderstorm, indoors in a bathroom with the door locked and the shower running so everyone thinks you’re crying alone in there …
… but this is for SCIENCE. Alright, assuming you didn’t observe any effect of physical environment, we can move on to software (or maybe the sentience registers its dislike for certain places.)
The network environment is certainly different in those two places. Turn off networking and try again. Are you opening and closing the same set of programs? Narrow it down to a short list of steps from startup to failure in each environment.
At this point we can start playing what I love to call the “blame game”. That is, it would be your job now to figure out exactly what part of the entire GNU/Linux software hierarchy clusterfuck is going kaput. Obtain source code and freshly minted copy of gdb. Good luck, soldier!
Because you certainly want to be the first guy to pinpoint emergent sentience, don’t you?
Hmmm… my Thinkpad R50e can’t suspent/resume since JJ, and volume keys lost OSD. That son of a #*$&% must really hate me!
Did you have to change your battery? I had the same problem while I was traveling. I blamed it on a bug in battery/bios to avoid going mad.
I noticed a similar thing. Suspend at home, bring to work, try to suspend before heading home – and it wouldn’t suspend.
I found that it works every time if I keep a USB mouse plugged in 🙂
Suspend/resume and hibernate have just worked for me, for quite some time, with several different Dell laptops and either Fedora or Ubuntu. Sorry it’s not going as well for you. I hope that those who are still having trouble are working to file good bug reports so the problem can be tracked down.
I’ve been using Thinkpads, specifically in this case the T61p. It works much better than it used to! I actually thought it was in good working shape until that weekend when it just stopped working. I didn’t upgrade anything, didn’t change any configuration, so I was surprised when it failed, and even more surprised when the week hit and it started working again.
People should absolutely file bugs. I’ve been meaning to try to capture some logging information during the failures, but of course when you *want* something to fail, that’s when it works the best 🙂
“Thinkpads, specifically in this case the T61p”
Right. This is why I buy Linux laptops anymore. (It’s limited by the fact that OEMs have to buy from OOEMs which more often than not use MSFT’s aml compiler, although when e.g. Canonical can isolate the aml bug they’re hitting, the Linux vendor can get the OOEM to fix the issue and issue a new BIOS patch to fix the underlying problem. Otherwise, you have to hope that the Linux kernel people decide to work around the bug that’s being triggered (not unrealistic, but not entirely realistic either, since they’re usually doing it right and the bios is doing it wrong).
in my case, my linux suspend works always but windows almost never…
Wow! I can’t believe I mistook the kernels sentience as a software bug…I will never look at my kernel the same again
I have to whisper it (I don’t like flame wars)… Anyway, TuxOnIce work like a charm…