[Intel-gfx] Lockup when switching displays using xrandr since kernel 3.5.x

Thilo-Alexander Ginkel thilo at ginkel.com
Wed Oct 17 01:26:30 CEST 2012


Hi there,

since upgrading from kernel 3.4.10 to 3.5.x or 3.6.2 (on Kubuntu
12.04) I am getting sporadic (but frequent) lockups when switching
displays using xrandr:

        /usr/bin/xrandr -d :0.0 --output LVDS1 --off --output HDMI3
--mode 1600x1200 --primary --auto
        sleep 2
        /usr/bin/xrandr -d :0.0 --output HDMI2 --mode 1600x1200
--right-of HDMI3 --auto

$ uname -a
Linux orion 3.6.2 #41 SMP Tue Oct 16 23:45:38 CEST 2012 x86_64 x86_64
x86_64 GNU/Linux

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation
Core Processor Family Integrated Graphics Controller (rev 09) (prog-if
00 [VGA controller])
        Subsystem: Lenovo Device 21d2
        Flags: bus master, fast devsel, latency 0, IRQ 46
        Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 4000 [size=64]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: <access denied>
        Kernel driver in use: i915
        Kernel modules: i915

When the lockup happens the local display is completely unresponsive,
but connecting via ssh shows the following stuck tasks:

[  479.796787] INFO: task kworker/2:2:360 blocked for more than 120 seconds.
[  479.796798] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[  479.796803] kworker/2:2     D 00000000ffffffff     0   360      2 0x00000000
[  479.796815]  ffff88020ffb7c30 0000000000000046 ffff88020fcfa080
ffff88020ffb7fd8
[  479.796825]  ffff88020ffb7fd8 ffff88020ffb7fd8 ffff8802148c2080
ffff88020fcfa080
[  479.796834]  ffff88020fcfa790 ffff88020000024a ffff88020fcfa740
0000000200000000
[  479.796844] Call Trace:
[  479.796862]  [<ffffffff81097e11>] ? mark_held_locks+0x61/0x140
[  479.796876]  [<ffffffff815c44a5>] ? mutex_lock_nested+0x1e5/0x320
[  479.796890]  [<ffffffff815c5a64>] schedule+0x24/0x70
[  479.796902]  [<ffffffff815c5d79>] schedule_preempt_disabled+0x9/0x10
[  479.796915]  [<ffffffff815c4411>] mutex_lock_nested+0x151/0x320
[  479.796956]  [<ffffffffa00f79b1>] ? output_poll_execute+0x51/0x1a0
[drm_kms_helper]
[  479.796973]  [<ffffffffa00f79b1>] output_poll_execute+0x51/0x1a0
[drm_kms_helper]
[  479.796984]  [<ffffffff81060bba>] process_one_work+0x18a/0x520
[  479.796992]  [<ffffffff81060b5e>] ? process_one_work+0x12e/0x520
[  479.797001]  [<ffffffff812d2674>] ? do_raw_spin_lock+0x54/0x120
[  479.797016]  [<ffffffffa00f7960>] ?
drm_helper_connector_dpms+0x100/0x100 [drm_kms_helper]
[  479.797032]  [<ffffffff810613af>] worker_thread+0x18f/0x4f0
[  479.797039]  [<ffffffff815c6cfa>] ? _raw_spin_unlock_irqrestore+0x3a/0x70
[  479.797047]  [<ffffffff8109809d>] ? trace_hardirqs_on+0xd/0x10
[  479.797055]  [<ffffffff81061220>] ? rescuer_thread+0x290/0x290
[  479.797063]  [<ffffffff81066909>] kthread+0xa9/0xb0
[  479.797069]  [<ffffffff8109809d>] ? trace_hardirqs_on+0xd/0x10
[  479.797078]  [<ffffffff815cec44>] kernel_thread_helper+0x4/0x10
[  479.797085]  [<ffffffff815c70b0>] ? retint_restore_args+0x13/0x13
[  479.797092]  [<ffffffff81066860>] ? __init_kthread_worker+0x70/0x70
[  479.797098]  [<ffffffff815cec40>] ? gs_change+0x13/0x13
[  479.797104] 3 locks held by kworker/2:2/360:
[  479.797107]  #0:  (events_nrt){.+.+.+}, at: [<ffffffff81060b5e>]
process_one_work+0x12e/0x520
[  479.797125]  #1:
((&(&dev->mode_config.output_poll_work)->work)){+.+.+.}, at:
[<ffffffff81060b5e>] process_one_work+0x12e/0x520
[  479.797140]  #2:  (&dev->mode_config.mutex){+.+.+.}, at:
[<ffffffffa00f79b1>] output_poll_execute+0x51/0x1a0 [drm_kms_helper]
[  479.797185] INFO: task Xorg:1759 blocked for more than 120 seconds.
[  479.797189] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[  479.797192] Xorg            D 0000000000000000     0  1759   1716 0x00400004
[  479.797201]  ffff880211091898 0000000000000046 ffff880211999040
ffff880211091fd8
[  479.797211]  ffff880211091fd8 ffff880211091fd8 ffff8801dd9ea080
ffff880211999040
[  479.797219]  ffff880211999708 ffff880211999040 0000000000000007
0000000000000006
[  479.797228] Call Trace:
[  479.797235]  [<ffffffff81097e11>] ? mark_held_locks+0x61/0x140
[  479.797243]  [<ffffffff815c6cfa>] ? _raw_spin_unlock_irqrestore+0x3a/0x70
[  479.797249]  [<ffffffff81097ffd>] ? trace_hardirqs_on_caller+0x10d/0x1a0
[  479.797256]  [<ffffffff8109809d>] ? trace_hardirqs_on+0xd/0x10
[  479.797265]  [<ffffffff815c5a64>] schedule+0x24/0x70
[  479.797299]  [<ffffffffa01253ad>]
intel_crtc_wait_for_pending_flips+0x6d/0xc0 [i915]
[  479.797307]  [<ffffffff81067190>] ? __init_waitqueue_head+0x60/0x60
[  479.797337]  [<ffffffffa0128f5d>] ironlake_crtc_disable+0x4d/0x7a0 [i915]
[  479.797363]  [<ffffffffa0129749>] ironlake_crtc_prepare+0x9/0x10 [i915]
[  479.797379]  [<ffffffffa00f7ebe>]
drm_crtc_helper_set_mode+0x35e/0x520 [drm_kms_helper]
[  479.797403]  [<ffffffffa00f8a1d>]
drm_crtc_helper_set_config+0x83d/0xaf0 [drm_kms_helper]
[  479.797440]  [<ffffffffa0071a1d>] drm_mode_setcrtc+0x2ed/0x540 [drm]
[  479.797466]  [<ffffffffa00622dc>] drm_ioctl+0x47c/0x540 [drm]
[  479.797496]  [<ffffffffa0071730>] ? drm_mode_setplane+0x3b0/0x3b0 [drm]
[  479.797504]  [<ffffffff81097ffd>] ? trace_hardirqs_on_caller+0x10d/0x1a0
[  479.797515]  [<ffffffff8114efc6>] do_vfs_ioctl+0x96/0x560
[  479.797524]  [<ffffffff815cdaa5>] ? sysret_check+0x22/0x5d
[  479.797532]  [<ffffffff8114f521>] sys_ioctl+0x91/0xa0
[  479.797541]  [<ffffffff815cda79>] system_call_fastpath+0x16/0x1b
[  479.797546] 1 lock held by Xorg/1759:
[  479.797549]  #0:  (&dev->mode_config.mutex){+.+.+.}, at:
[<ffffffffa0071796>] drm_mode_setcrtc+0x66/0x540 [drm]

dmesg: http://pastebin.com/p48xLmSc
lspci -vvv: http://pastebin.com/86RrRuKK
Xorg.log: http://pastebin.com/AvL7PC4U

Any ideas?

Thanks,
Thilo



More information about the Intel-gfx mailing list