i915 deadlock on laptop undock

Roland Dreier roland at kernel.org
Tue Oct 8 00:41:05 CEST 2013


Hi,

I have a Lenovo T410s (Ironlake/Arrandale graphics) that I use docked
and connected to an external DP monitor (laptop is closed so the only
active display is the DP monitor).  With 3.12-rc4 I reproducably hit a
deadlock when I undock the laptop -- it seems to be a deadlock on
dev->mode_confix.mutext between intel_crtc_wait_for_pending_flips
(mutex held because of drm_modeset_lock_all in intel_lid_notify) and
drm_mode_getconnector.  See below for the kernel logging (there's no
logging for more than 2 minutes before the hung task stuff) -- it
seems that intel_crtc_wait_for_pending_flips is getting stuck, and
then everything else piles up behind it:

    [  241.009121] INFO: task kworker/0:1:70 blocked for more than 120 seconds.
    [  241.009131]       Tainted: G        W    3.12.0-999-generic #201310070425
    [  241.009133] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  241.009137] kworker/0:1     D 0000000000000000     0    70      2 0x00000000
    [  241.009152] Workqueue: kacpi_notify acpi_os_execute_deferred
    [  241.009156]  ffff88022b2c9ae8 0000000000000046 ffff88022b2c9ab8 000000008e17de71
    [  241.009162]  ffff88022b2c9fd8 ffff88022b2c9fd8 ffff88022b2c9fd8 00000000000144c0
    [  241.009167]  ffffffff81c144a0 ffff88022b290000 0000000000000286 ffff88022ae70000
    [  241.009173] Call Trace:
    [  241.009186]  [<ffffffff81753619>] schedule+0x29/0x70
    [  241.009247]  [<ffffffffa011eb9d>] intel_crtc_wait_for_pending_flips+0x8d/0x120 [i915]
    [  241.009257]  [<ffffffff8108cc30>] ? add_wait_queue+0x60/0x60
    [  241.009289]  [<ffffffffa0127baf>] ironlake_crtc_disable+0x7f/0x2a0 [i915]
    [  241.009318]  [<ffffffffa012a0f6>] intel_crtc_update_dpms+0x76/0xb0 [i915]
    [  241.009347]  [<ffffffffa012d8e5>] intel_sanitize_crtc+0xd5/0x370 [i915]
    [  241.009377]  [<ffffffffa012e1ed>] intel_modeset_setup_hw_state+0x17d/0x380 [i915]
    [  241.009407]  [<ffffffffa01307a1>] intel_lid_notify+0xc1/0x100 [i915]
    [  241.009412]  [<ffffffff817596ad>] notifier_call_chain+0x4d/0x70
    [  241.009419]  [<ffffffff81091ea8>] __blocking_notifier_call_chain+0x58/0x80
    [  241.009424]  [<ffffffff81091ee6>] blocking_notifier_call_chain+0x16/0x20
    [  241.009431]  [<ffffffff8142b15b>] acpi_lid_send_state+0x86/0xaf
    [  241.009436]  [<ffffffff8142b1e1>] acpi_button_notify+0x3b/0xa2
    [  241.009442]  [<ffffffff814032f1>] acpi_device_notify+0x19/0x1b
    [  241.009448]  [<ffffffff814131cd>] acpi_ev_notify_dispatch+0x41/0x5c
    [  241.009453]  [<ffffffff813ff59e>] acpi_os_execute_deferred+0x25/0x32
    [  241.009458]  [<ffffffff81083ccf>] process_one_work+0x17f/0x4d0
    [  241.009463]  [<ffffffff81084f0b>] worker_thread+0x11b/0x3d0
    [  241.009468]  [<ffffffff81084df0>] ? manage_workers.isra.20+0x1b0/0x1b0
    [  241.009473]  [<ffffffff8108c0d0>] kthread+0xc0/0xd0
    [  241.009479]  [<ffffffff8108c010>] ? flush_kthread_worker+0xb0/0xb0
    [  241.009484]  [<ffffffff8175dfbc>] ret_from_fork+0x7c/0xb0
    [  241.009489]  [<ffffffff8108c010>] ? flush_kthread_worker+0xb0/0xb0
    [  241.009525] INFO: task Xorg:1436 blocked for more than 120 seconds.
    [  241.009528]       Tainted: G        W    3.12.0-999-generic #201310070425
    [  241.009531] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  241.009533] Xorg            D 0000000000000000     0  1436   1410 0x00400004
    [  241.009538]  ffff88022ca1bc48 0000000000000082 ffff88022ca1bc18 ffffffff811a31a1
    [  241.009543]  ffff88022ca1bfd8 ffff88022ca1bfd8 ffff88022ca1bfd8 00000000000144c0
    [  241.009549]  ffff880230198000 ffff8800b06546e0 ffff88022ca1bc28 ffff8800363b8330
    [  241.009554] Call Trace:
    [  241.009562]  [<ffffffff811a31a1>] ? kmem_cache_free+0x121/0x180
    [  241.009568]  [<ffffffff81753619>] schedule+0x29/0x70
    [  241.009574]  [<ffffffff8175394e>] schedule_preempt_disabled+0xe/0x10
    [  241.009580]  [<ffffffff817518c4>] __mutex_lock_slowpath+0x114/0x1b0
    [  241.009585]  [<ffffffff81751983>] mutex_lock+0x23/0x40
    [  241.009613]  [<ffffffffa004e582>] drm_mode_getconnector+0xb2/0x430 [drm]
    [  241.009633]  [<ffffffffa003ef1a>] drm_ioctl+0x4fa/0x620 [drm]
    [  241.009656]  [<ffffffffa004e4d0>] ? drm_mode_getcrtc+0xe0/0xe0 [drm]
    [  241.009663]  [<ffffffff811cedda>] do_vfs_ioctl+0x7a/0x2e0
    [  241.009668]  [<ffffffff811bcc01>] ? vfs_read+0x111/0x180
    [  241.009673]  [<ffffffff811cf0d1>] SyS_ioctl+0x91/0xb0
    [  241.009678]  [<ffffffff811bce40>] ? SyS_read+0x70/0xa0
    [  241.009683]  [<ffffffff8175e06d>] system_call_fastpath+0x1a/0x1f

Detailed lspci info for my laptop:

    00:00.0 Host bridge [0600]: Intel Corporation Core Processor DRAM Controller [8086:0044] (rev 02)
    00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02)
    00:16.0 Communication controller [0780]: Intel Corporation 5 Series/3400 Series Chipset HECI Controller [8086:3b64] (rev 06)
    00:19.0 Ethernet controller [0200]: Intel Corporation 82577LM Gigabit Network Connection [8086:10ea] (rev 06)
    00:1a.0 USB controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b3c] (rev 06)
    00:1b.0 Audio device [0403]: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio [8086:3b57] (rev 06)
    00:1c.0 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 [8086:3b42] (rev 06)
    00:1c.1 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 [8086:3b44] (rev 06)
    00:1c.3 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 [8086:3b48] (rev 06)
    00:1d.0 USB controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b34] (rev 06)
    00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev a6)
    00:1f.0 ISA bridge [0601]: Intel Corporation 5 Series/3400 Series Chipset LPC Interface Controller [8086:3b0f] (rev 06)
    00:1f.2 SATA controller [0106]: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller [8086:3b2f] (rev 06)
    00:1f.3 SMBus [0c05]: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller [8086:3b30] (rev 06)
    00:1f.6 Signal processing controller [1180]: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem [8086:3b32] (rev 06)
    03:00.0 Network controller [0280]: Intel Corporation Centrino Wireless-N 1000 [Condor Peak] [8086:0084]
    ff:00.0 Host bridge [0600]: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers [8086:2c62] (rev 02)
    ff:00.1 Host bridge [0600]: Intel Corporation Core Processor QuickPath Architecture System Address Decoder [8086:2d01] (rev 02)
    ff:02.0 Host bridge [0600]: Intel Corporation Core Processor QPI Link 0 [8086:2d10] (rev 02)
    ff:02.1 Host bridge [0600]: Intel Corporation Core Processor QPI Physical 0 [8086:2d11] (rev 02)
    ff:02.2 Host bridge [0600]: Intel Corporation Core Processor Reserved [8086:2d12] (rev 02)
    ff:02.3 Host bridge [0600]: Intel Corporation Core Processor Reserved [8086:2d13] (rev 02)

Please let me know if there is any way I can help debug this further.

Thanks!
  Roland


More information about the dri-devel mailing list