All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm: Flush output polling on shutdown
Date: Fri, 31 May 2019 18:18:04 +0100	[thread overview]
Message-ID: <155932308469.27302.519359846475020736@skylake-alporthouse-com> (raw)
In-Reply-To: <20190531171615.32269-1-chris@chris-wilson.co.uk>

Quoting Chris Wilson (2019-05-31 18:16:15)
> We need to mark the output polling as disabled to prevent concurrent
> irqs from queuing new work as shutdown the probe -- causing that work to
> execute after we have freed the structs:
> 
> <4> [341.846490] DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock))
> <4> [341.846497] WARNING: CPU: 3 PID: 3300 at kernel/locking/mutex-debug.c:103 mutex_destroy+0x49/0x50
> <4> [341.846508] Modules linked in: i915(-) vgem thunderbolt snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic mei_hdcp x86_pkg_temp_thermal coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm mcs7830 btusb usbnet btrtl mii btbcm btintel bluetooth ecdh_generic ecc mei_me mei prime_numbers i2c_hid pinctrl_sunrisepoint pinctrl_intel [last unloaded: i915]
> <4> [341.846546] CPU: 3 PID: 3300 Comm: i915_module_loa Tainted: G     U            5.2.0-rc2-CI-CI_DRM_6175+ #1
> <4> [341.846553] Hardware name: Dell Inc. XPS 13 9360/0823VW, BIOS 2.9.0 07/09/2018
> <4> [341.846560] RIP: 0010:mutex_destroy+0x49/0x50
> <4> [341.846565] Code: 00 00 5b c3 e8 a8 9f 3b 00 85 c0 74 ed 8b 05 3e 55 23 01 85 c0 75 e3 48 c7 c6 00 d0 08 82 48 c7 c7 a8 aa 07 82 e8 e7 08 fa ff <0f> 0b eb cc 0f 1f 00 48 b8 11 11 11 11 11 11 11 11 48 89 76 20 48
> <4> [341.846578] RSP: 0018:ffffc900006cfdb0 EFLAGS: 00010286
> <4> [341.846583] RAX: 0000000000000000 RBX: ffff88826759a168 RCX: 0000000000000000
> <4> [341.846589] RDX: 0000000000000002 RSI: 0000000000000000 RDI: ffffffff8112844c
> <4> [341.846595] RBP: ffff8882708fa548 R08: 0000000000000000 R09: 0000000000039600
> <4> [341.846601] R10: 0000000000000000 R11: 0000000000000ce4 R12: ffffffffa07de1e0
> <4> [341.846607] R13: 0000000000000000 R14: 0000000000000000 R15: ffffffffa07de2d0
> <4> [341.846613] FS:  00007f62b5ae0e40(0000) GS:ffff888276380000(0000) knlGS:0000000000000000
> <4> [341.846620] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> <4> [341.846626] CR2: 000055a4e064f4a0 CR3: 0000000266b16006 CR4: 00000000003606e0
> <4> [341.846632] Call Trace:
> <4> [341.846639]  drm_fb_helper_fini.part.17+0xb3/0x100
> <4> [341.846682]  intel_fbdev_fini+0x20/0x80 [i915]
> <4> [341.846722]  intel_modeset_cleanup+0x9a/0x140 [i915]
> <4> [341.846750]  i915_driver_unload+0xa3/0x100 [i915]
> <4> [341.846778]  i915_pci_remove+0x19/0x30 [i915]
> <4> [341.846784]  pci_device_remove+0x36/0xb0
> <4> [341.846790]  device_release_driver_internal+0xd3/0x1b0
> <4> [341.846795]  driver_detach+0x3f/0x80
> <4> [341.846800]  bus_remove_driver+0x53/0xd0
> <4> [341.846805]  pci_unregister_driver+0x25/0xa0
> <4> [341.846843]  i915_exit+0x16/0x1c [i915]
> <4> [341.846849]  __se_sys_delete_module+0x162/0x210
> <4> [341.846855]  ? trace_hardirqs_off_thunk+0x1a/0x1c
> <4> [341.846859]  ? do_syscall_64+0xd/0x1c0
> <4> [341.846864]  do_syscall_64+0x55/0x1c0
> <4> [341.846869]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> <4> [341.846875] RIP: 0033:0x7f62b51871b7
> <4> [341.846881] Code: 73 01 c3 48 8b 0d d1 8c 2c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 b0 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d a1 8c 2c 00 f7 d8 64 89 01 48
> <4> [341.846897] RSP: 002b:00007ffe7a227138 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
> <4> [341.846904] RAX: ffffffffffffffda RBX: 00007ffe7a2272b0 RCX: 00007f62b51871b7
> <4> [341.846910] RDX: 0000000000000001 RSI: 0000000000000800 RDI: 0000557cd6b55948
> <4> [341.846916] RBP: 0000557cd6b558e0 R08: 0000557cd6b5594c R09: 00007ffe7a227160
> <4> [341.846922] R10: 00007ffe7a226134 R11: 0000000000000206 R12: 0000000000000000
> <4> [341.846927] R13: 00007ffe7a227820 R14: 0000000000000000 R15: 0000000000000000
> <4> [341.846936] irq event stamp: 3547847
> <4> [341.846940] hardirqs last  enabled at (3547847): [<ffffffff819aad2c>] _raw_spin_unlock_irqrestore+0x4c/0x60
> <4> [341.846949] hardirqs last disabled at (3547846): [<ffffffff819aab9d>] _raw_spin_lock_irqsave+0xd/0x50
> <4> [341.846957] softirqs last  enabled at (3547376): [<ffffffff81c0033a>] __do_softirq+0x33a/0x4b9
> <4> [341.846966] softirqs last disabled at (3547367): [<ffffffff810b6379>] irq_exit+0xa9/0xc0
> <4> [341.846973] WARNING: CPU: 3 PID: 3300 at kernel/locking/mutex-debug.c:103 mutex_destroy+0x49/0x50
> <4> [341.846980] ---[ end trace ba94ca8952ba970e ]---
> <7> [341.866547] [drm:intel_dp_detect [i915]] MST support? port A: no, sink: no, modparam: yes
> <7> [341.890480] [drm:drm_add_display_info] non_desktop set to 0
> <7> [341.890530] [drm:drm_add_edid_modes] ELD: no CEA Extension found
> <7> [341.890537] [drm:drm_add_display_info] non_desktop set to 0
> <7> [341.890578] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:86:eDP-1] probed modes :
> <7> [341.890589] [drm:drm_mode_debug_printmodeline] Modeline "3200x1800": 60 373250 3200 3248 3280 3360 1800 1803 1808 1852 0x48 0xa
> <7> [341.890602] [drm:drm_mode_debug_printmodeline] Modeline "3200x1800": 48 298600 3200 3248 3280 3360 1800 1803 1808 1852 0x40 0xa
> <4> [341.890628] general protection fault: 0000 [#1] PREEMPT SMP PTI
> <4> [341.890636] CPU: 0 PID: 508 Comm: kworker/0:4 Tainted: G     U  W         5.2.0-rc2-CI-CI_DRM_6175+ #1
> <4> [341.890646] Hardware name: Dell Inc. XPS 13 9360/0823VW, BIOS 2.9.0 07/09/2018
> <4> [341.890655] Workqueue: events output_poll_execute
> <4> [341.890663] RIP: 0010:drm_setup_crtcs+0x13e/0xbe0
> <4> [341.890669] Code: 00 41 8b 44 24 58 85 c0 0f 8e f9 01 00 00 44 8b 6c 24 20 44 8b 74 24 28 31 db 31 ed 49 8b 44 24 60 48 63 d5 44 89 ee 83 c5 01 <48> 8b 04 d0 44 89 f2 48 8b 38 48 8b 87 88 01 00 00 48 8b 40 20 e8
> <4> [341.890686] RSP: 0018:ffffc9000033fd40 EFLAGS: 00010202
> <4> [341.890692] RAX: 6b6b6b6b6b6b6b6b RBX: 0000000000000002 RCX: 0000000000000000
> <4> [341.890700] RDX: 0000000000000001 RSI: 0000000000000c80 RDI: 00000000ffffffff
> <4> [341.890707] RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
> <4> [341.890715] R10: 0000000000000c80 R11: 0000000000000000 R12: ffff888267599fe8
> <4> [341.890722] R13: 0000000000000c80 R14: 0000000000000708 R15: 0000000000000007
> <4> [341.890730] FS:  0000000000000000(0000) GS:ffff888276200000(0000) knlGS:0000000000000000
> <4> [341.890739] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> <4> [341.890745] CR2: 000055a4e064f4a0 CR3: 000000026d234003 CR4: 00000000003606f0
> <4> [341.890752] Call Trace:
> <4> [341.890760]  drm_fb_helper_hotplug_event.part.24+0x89/0xb0
> <4> [341.890768]  drm_kms_helper_hotplug_event+0x21/0x30
> <4> [341.890774]  output_poll_execute+0x9d/0x1a0
> <4> [341.890782]  process_one_work+0x245/0x610
> <4> [341.890790]  worker_thread+0x37/0x380
> <4> [341.890796]  ? process_one_work+0x610/0x610
> <4> [341.890802]  kthread+0x119/0x130
> <4> [341.890808]  ? kthread_park+0x80/0x80
> <4> [341.890815]  ret_from_fork+0x3a/0x50

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109964
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/drm_probe_helper.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index 6fd08e04b323..cbdceb8d590f 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -574,6 +574,9 @@ static void output_poll_execute(struct work_struct *work)
>         enum drm_connector_status old_status;
>         bool repoll = false, changed;
>  
> +       if (!dev->mode_config.poll_enabled)
> +               return;
> +
>         /* Pick up any changes detected by the probe functions. */
>         changed = dev->mode_config.delayed_event;
>         dev->mode_config.delayed_event = false;
> @@ -728,7 +731,8 @@ EXPORT_SYMBOL(drm_kms_helper_poll_init);
>   */
>  void drm_kms_helper_poll_fini(struct drm_device *dev)
>  {
> -       drm_kms_helper_poll_disable(dev);
> +       dev->mode_config.poll_enabled = false;
> +       cancel_delayed_work_sync(&dev->mode_config.output_poll_work);
>  }
>  EXPORT_SYMBOL(drm_kms_helper_poll_fini);
>  
> -- 
> 2.20.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2019-05-31 17:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-31 17:16 [PATCH] drm: Flush output polling on shutdown Chris Wilson
2019-05-31 17:18 ` Chris Wilson [this message]
2019-05-31 17:45 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2019-05-31 17:45 ` [PATCH v2] " Chris Wilson
2019-05-31 18:05 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Flush output polling on shutdown (rev2) Patchwork
2019-05-31 18:48 ` ✗ Fi.CI.BAT: failure for drm: Flush output polling on shutdown Patchwork
2019-05-31 18:53 ` ✗ Fi.CI.BAT: failure for drm: Flush output polling on shutdown (rev2) Patchwork
2019-05-31 19:09 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Flush output polling on shutdown (rev3) Patchwork
2019-05-31 19:12 ` [PATCH v2] drm: Flush output polling on shutdown Chris Wilson
2019-05-31 19:33 ` ✗ Fi.CI.CHECKPATCH: warning for drm: Flush output polling on shutdown (rev4) Patchwork
2019-05-31 19:35 ` ✗ Fi.CI.BAT: failure for drm: Flush output polling on shutdown (rev3) Patchwork
2019-05-31 20:22 ` ✗ Fi.CI.BAT: failure for drm: Flush output polling on shutdown (rev4) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=155932308469.27302.519359846475020736@skylake-alporthouse-com \
    --to=chris@chris-wilson.co.uk \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.