teh bigbro blog(tm)
Bigbro's foray into the scary world of blogging
03 05 2009

Sun, 03 May 2009

Intel i915 & Linux

I've been having periodic hangs of X under Linux for quite a while - since Ubuntu 8.10, in fact. Since the hang is something that largely doesn't bother writing anything to logs it's taken me quite a while to track down what the issue is - and I now suspect it to be the Intel i915 chipset drivers for Linux. This is getting increasingly frustrating as I see the complete hang almost once a day now, making my laptop effectively unusable.

Symptoms include the screen freezing, and possible corruption of the image on the screen. The keyboard gets locked out completely, except for the power button (which will only respond if you hold it in for 4 seconds to power the machine off.) The mouse may still work, and you may still be able to move the mouse cursor around the screen, but clicking has no effect. You can verify it's not a kernel stop / hang if you install an SSH server and use a second maching to log in remotely. While performance is poor (I suspect some loop is cycling trying to recover the i915 driver or hardware) you can view logs and interact with the box in the normal fashion, verifying that networking, the kernel and everything else except X, the monitor and keyboard is running happily.

What makes it extra annoying is that the failure mode stops you doing a clean shutdown of the box, even remotely. 'halt', 'shutdown', 'reboot', 'init 1', and anything else I tried completely failed to unwedge the box, possibly indicating that the kernel should be a little more harsh about killing things in the face when told to - but there's a fine line to be drawn there I'll admit, particularly with respect to waiting for older, slower hardware to respond, flush buffers, etc.

You may be susceptible to this problem is you see things like the following in your logs:

	[drm:i915_setparam] *ERROR* unknown parameter 4
	[drm:i915_getparam] *ERROR* Unknown parameter 6
	[drm:i915_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 0

Yesterday, while devoting some time to see wtf was going on, I managed to get the kernel to output an error line:
	[drm:i915_gem_entervt_ioctl] *ERROR* Reenabling wedged hardware, good luck
which I think says it all. I was unable to reproduce production of this error line this morning.

Matt Zimmerman has reported a similar bug but detailed that he triggered it by stressing the graphics drivers. Unfortunately, in my case I seem to be able to trigger it randomly by running a couple of terminals, firefox and thunderbird - not what you might call graphically stressful software.

Investigations will continue, but for now consider looking for an alternative to the i915 chipset from Intel if you want to run Linux.

posted at: 09:33 | path: | permanent link to this entry

[IPv6 Ready]


copyright © 2005-2011, Gareth Eason