xorg deadlocked after screen fades to black

Bug #395855 reported by Jeffrey Baker
This bug report is a duplicate of:  Bug #431812: i915: black screen on boot. Edit Remove
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xf86-video-intel
Fix Released
Unknown
xserver-xorg-video-intel (Ubuntu)
Triaged
High
Unassigned

Bug Description

Binary package hint: xserver-xorg-video-intel

Karmic Alpha, x86_64, Lenovo ThinkPad X61 Tablet, GM965 graphics. I have UXA and KMS enabled (by default) and also using "Normal" visual effects i.e. compiz.

When the laptop is idle for a few minutes, the screen fades to black. Subsequently the X server hangs entirely. I get these messages in dmesg:

[ 600.840070] INFO: task events/1:10 blocked for more than 120 seconds.
[ 600.840078] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 600.840085] events/1 D 0000000000000000 0 10 2 0x00000000
[ 600.840096] ffff88007b3c3d70 0000000000000046 ffff88007b3c3dd0 0000000000015540
[ 600.840107] ffff88007b3c83b0 0000000000015540 0000000000015540 0000000000015540
[ 600.840117] 0000000000015540 ffff88007b3c83b0 0000000000015540 0000000000015540
[ 600.840127] Call Trace:
[ 600.840145] [<ffffffff81512c07>] __mutex_lock_slowpath+0xd7/0x160
[ 600.840154] [<ffffffff81512b06>] mutex_lock+0x26/0x50
[ 600.840195] [<ffffffffa005f538>] i915_gem_retire_work_handler+0x38/0x90 [i915]
[ 600.840221] [<ffffffffa005f500>] ? i915_gem_retire_work_handler+0x0/0x90 [i915]
[ 600.840233] [<ffffffff8106bb15>] run_workqueue+0x95/0x170
[ 600.840240] [<ffffffff8106bc94>] worker_thread+0xa4/0x120
[ 600.840250] [<ffffffff81070e10>] ? autoremove_wake_function+0x0/0x40
[ 600.840258] [<ffffffff8106bbf0>] ? worker_thread+0x0/0x120
[ 600.840266] [<ffffffff81070a26>] kthread+0x96/0xa0
[ 600.840275] [<ffffffff8101308a>] child_rip+0xa/0x20
[ 600.840284] [<ffffffff81070990>] ? kthread+0x0/0xa0
[ 600.840291] [<ffffffff81013080>] ? child_rip+0x0/0x20
[ 600.840322] INFO: task Xorg:2550 blocked for more than 120 seconds.
[ 600.840326] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 600.840331] Xorg D 0000000000000000 0 2550 2549 0x00400004
[ 600.840341] ffff880072cb1cb8 0000000000000086 fffffff57a1be000 0000000000015540
[ 600.840351] ffff880078e6b110 0000000000015540 0000000000015540 0000000000015540
[ 600.840361] 0000000000015540 ffff880078e6b110 0000000000015540 0000000000015540
[ 600.840370] Call Trace:
[ 600.840380] [<ffffffff81512c07>] __mutex_lock_slowpath+0xd7/0x160
[ 600.840390] [<ffffffff8140c949>] ? sock_aio_read+0x149/0x150
[ 600.840398] [<ffffffff81512b06>] mutex_lock+0x26/0x50
[ 600.840423] [<ffffffffa005f816>] i915_gem_throttle_ioctl+0x36/0x90 [i915]
[ 600.840460] [<ffffffffa0026c6e>] drm_ioctl+0x17e/0x3a0 [drm]
[ 600.840471] [<ffffffff81114d32>] ? do_sync_read+0xf2/0x130
[ 600.840481] [<ffffffff81070e10>] ? autoremove_wake_function+0x0/0x40
[ 600.840491] [<ffffffff810313f9>] ? default_spin_lock_flags+0x9/0x10
[ 600.840499] [<ffffffff81513eca>] ? _spin_lock_irqsave+0x2a/0x40
[ 600.840508] [<ffffffff81123f5c>] vfs_ioctl+0x7c/0xa0
[ 600.840516] [<ffffffff81124529>] do_vfs_ioctl+0x79/0x370
[ 600.840523] [<ffffffff811248a1>] sys_ioctl+0x81/0xa0
[ 600.840533] [<ffffffff81011fc2>] system_call_fastpath+0x16/0x1b

I can still ssh into the machine, but chvt hangs as does apport-cli (because it launches a bunch of X clients, which hang.) It looks like a deadlock to me. Two different code stacks are going for the same lock.

Please don't set this to incomplete on the basis of a missing /etc/motd ... as I said apport-cli hangs.

Tags: 965gm karmic
Revision history for this message
Jeffrey Baker (jwbaker) wrote :
Revision history for this message
Jeffrey Baker (jwbaker) wrote :
Revision history for this message
Jeffrey Baker (jwbaker) wrote :
Revision history for this message
Jeffrey Baker (jwbaker) wrote :

I don't think this is a dupe of #390917 because the "sudo xset dpms force off" method does not reproduce this bug for me.

Changed in xserver-xorg-video-intel:
status: Unknown → Confirmed
Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

> Please don't set this to incomplete on the basis of a missing /etc/motd ... as I said apport-cli hangs.

Setting to incomplete since we really want the output of `lscpi -vvnn` (to get the numerical PCI IDs), but once we have that we can set it to Confirmed ;-)

Changed in xserver-xorg-video-intel (Ubuntu):
importance: Undecided → High
status: New → Incomplete
tags: added: 965gm karmic
removed: gm965
Revision history for this message
Jeffrey Baker (jwbaker) wrote :

Attached.

Why are you changing all my tags from "GM965" to "965GM"? Intel has never made a part called the 965GM.

http://www.intel.com/products/notebook/chipsets/gm965/gm965-overview.htm

Changed in xserver-xorg-video-intel (Ubuntu):
status: Incomplete → New
Geir Ove Myhr (gomyhr)
Changed in xserver-xorg-video-intel (Ubuntu):
status: New → Confirmed
Revision history for this message
Geir Ove Myhr (gomyhr) wrote : Re: [Bug 395855] Re: xorg deadlocked after screen fades to black

On Sun, Jul 5, 2009 at 6:37 PM, Jeffrey Baker wrote:
> Why are you changing all my tags from "GM965" to "965GM"?  Intel has
> never made a part called the 965GM.

The main reason is consistency. Tags are useful because bug reports
with a similar property gets the same tag. In this case, there are
several other bug reports with the 965gm tag and none with gm965, and
it is nice to click on the 965gm tag and get a list of currently open
bugs reported on 965GM. The idea would be to see which tags are used,
and use them instaed of inventing new and similar ones [1].

But I agree that it is a bit confusing which tag to use for a given
chipset. I "standardized" on 965gm more than half a year ago when
there were a few bug reports with each (and similar for other
chipsets). The main reason for using 965gm is that this is what the
chipset is called in the intel driver. In Xorg.0.log you will see the
line
(--) intel(0): Chipset: "965GM"
and when I was cleaning up the tag structure half a year ago I found
that it was most consistent to use this line as a tag name where
possible (some of those are too long or have invalid tag characters).
The list of what can end up on this line can be found in the source
code: http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/i830_driver.c
. The currently used tags for X are listed at
https://wiki.ubuntu.com/X/Tagging . Grepping for GM965 in the source
code gives no hits. I have no idea why it is this way, but I think it
is easier to use what the log files say than what it says on the
package.

[1]: When I started to standardize the tags, the list of bugs would
show all tags used for a package along with the number of bug reports
with that tag. While this was problematic since the list would be a
mile long when the list was for all ubuntu bugs, it was very useful as
a suggestion for what tags to put on a bug report.

Bryce Harrington (bryce)
Changed in xserver-xorg-video-intel (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Bryce Harrington (bryce) wrote :

Hi Jeffrey, upstream believes this bug is solved upstream but needs your confirmation against their upstream code. We provide a PPA called xorg-edgers which includes packages of their code, to make it easier for you to test. Would you mind installing the -intel driver from xorg-edgers and confirming that it does indeed fix it? If you can confirm that, then I can backport the specific fixes to Karmic.

https://edge.launchpad.net/~xorg-edgers/+archive/ppa

Revision history for this message
Jeffrey Baker (jwbaker) wrote :

Will definitely check it out, but it might take me a few days to get to it. Thanks for the notice.

Changed in xserver-xorg-video-intel:
status: Confirmed → Fix Released
Revision history for this message
DaleEMoore (daleemoore) wrote :

My fade-to-black issues was fixed by these improvements, thanks.

But I have a similar problem without the black. Screen frozen and no response from any keyboard or mouse activity. ssh still active and the tasks that were not tied to screen activity are still chugging along fine.

/var/log/syslog has:

Nov 17 15:35:46 user-desktop kernel: [27120.768086] INFO: task i915/0:260 blocked for more than 120 seconds.
Nov 17 15:35:46 user-desktop kernel: [27120.768094] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Nov 17 15:35:46 user-desktop kernel: [27120.768099] i915/0 D c08145c0 0 260 2 0x00000000
Nov 17 15:35:46 user-desktop kernel: [27120.768109] efb1ff04 00000046 e64fa000 c08145c0 efabe718 c08145c0 2d77d24b 00001782
Nov 17 15:35:46 user-desktop kernel: [27120.768122] c08145c0 c08145c0 efabe718 c08145c0 00000000 00001782 c08145c0 e8732400
Nov 17 15:35:46 user-desktop kernel: [27120.768134] efabe480 ef893814 ef893818 ffffffff efb1ff30 c056f776 c0748e80 ef89381c
Nov 17 15:35:46 user-desktop kernel: [27120.768147] Call Trace:
Nov 17 15:35:46 user-desktop kernel: [27120.768163] [<c056f776>] __mutex_lock_slowpath+0xc6/0x130
Nov 17 15:35:46 user-desktop kernel: [27120.768169] [<c056f690>] mutex_lock+0x20/0x40
Nov 17 15:35:46 user-desktop kernel: [27120.768207] [<f8257c0a>] i915_gem_retire_work_handler+0x2a/0x70 [i915]
Nov 17 15:35:46 user-desktop kernel: [27120.768219] [<c0157a7e>] run_workqueue+0x6e/0x140
Nov 17 15:35:46 user-desktop kernel: [27120.768236] [<f8257be0>] ? i915_gem_retire_work_handler+0x0/0x70 [i915]
Nov 17 15:35:46 user-desktop kernel: [27120.768243] [<c0157bd8>] worker_thread+0x88/0xe0
Nov 17 15:35:46 user-desktop kernel: [27120.768251] [<c015c280>] ? autoremove_wake_function+0x0/0x40
Nov 17 15:35:46 user-desktop kernel: [27120.768257] [<c0157b50>] ? worker_thread+0x0/0xe0
Nov 17 15:35:46 user-desktop kernel: [27120.768263] [<c015bf8c>] kthread+0x7c/0x90
Nov 17 15:35:46 user-desktop kernel: [27120.768269] [<c015bf10>] ? kthread+0x0/0x90
Nov 17 15:35:46 user-desktop kernel: [27120.768276] [<c0104007>] kernel_thread_helper+0x7/0x10

May I provide other diagnostic information to help resolve this issue?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.