Chris Wilson
457db89b53
drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
...
Commit 21cc6431e0c2 ("drm/i915: Mark the userptr invalidate workqueue
as WQ_MEM_RECLAIM") tried to fixup the check_flush_dependency warning
for hitting i915_gem_userptr_mn_invalidate_range_start from within the
shrinker, but I failed to notice userptr has 2 similarly named
workqueues. I marked up i915-userptr-acquire as WQ_MEM_RECLAIM whereas
we only wait upon i915-userptr-release from inside the reclaim paths.
[62530.869510] workqueue: PF_MEMALLOC task 7983(gem_shrink) is flushing !WQ_MEM_RECLAIM i915-userptr-release: (null)
[62530.869515] ------------[ cut here ]------------
[62530.869519] WARNING: CPU: 1 PID: 7983 at kernel/workqueue.c:2434 check_flush_dependency+0x7f/0x110
[62530.869519] Modules linked in: pegasus mii ip6table_filter ip6_tables bnep iptable_filter snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic binfmt_misc nls_iso8859_1 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm irqbypass snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul crc32_pclmul 8250_dw ghash_clmulni_intel snd_seq pcbc snd_seq_device snd_timer btusb aesni_intel btrtl btbcm aes_x86_64 iwlwifi btintel crypto_simd glue_helper cryptd bluetooth snd intel_cstate input_leds idma64 intel_rapl_perf ecdh_generic serio_raw soundcore cfg80211 wmi_bmof virt_dma intel_lpss_pci intel_lpss acpi_als kfifo_buf industrialio winbond_cir soc_button_array rc_core spidev tpm_crb intel_hid acpi_pad mac_hid sparse_keymap
[62530.869546] parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid i915 i2c_algo_bit prime_numbers drm_kms_helper syscopyarea e1000e sysfillrect sysimgblt fb_sys_fops ahci ptp pps_core libahci drm wmi video i2c_hid hid
[62530.869557] CPU: 1 PID: 7983 Comm: gem_shrink Tainted: G U W L 4.14.0-rc8-drm-tip-ww45-commit-1342299+ #1
[62530.869558] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake H DDR4 RVP, BIOS CNLSFWR1.R00.X098.A00.1707301945 07/30/2017
[62530.869559] task: ffffa1049dbeec80 task.stack: ffffae7d05c44000
[62530.869560] RIP: 0010:check_flush_dependency+0x7f/0x110
[62530.869561] RSP: 0018:ffffae7d05c473a0 EFLAGS: 00010286
[62530.869562] RAX: 000000000000006e RBX: ffffa1049540f400 RCX: ffffffffa3e55788
[62530.869562] RDX: 0000000000000000 RSI: 0000000000000092 RDI: 0000000000000202
[62530.869563] RBP: ffffae7d05c473c0 R08: 000000000000006e R09: 000000000038bb0e
[62530.869563] R10: 0000000000000000 R11: 000000000000006e R12: ffffa1049dbeec80
[62530.869564] R13: 0000000000000000 R14: 0000000000000000 R15: ffffae7d05c473e0
[62530.869565] FS: 00007f621b129880(0000) GS:ffffa1050b240000(0000) knlGS:0000000000000000
[62530.869566] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[62530.869566] CR2: 00007f6214400000 CR3: 0000000353a17003 CR4: 00000000003606e0
[62530.869567] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[62530.869567] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[62530.869568] Call Trace:
[62530.869570] flush_workqueue+0x115/0x3d0
[62530.869573] ? wake_up_process+0x15/0x20
[62530.869596] i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
[62530.869614] ? i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
[62530.869616] __mmu_notifier_invalidate_range_start+0x55/0x80
[62530.869618] try_to_unmap_one+0x791/0x8b0
[62530.869620] ? call_rwsem_down_read_failed+0x18/0x30
[62530.869622] rmap_walk_anon+0x10b/0x260
[62530.869624] rmap_walk+0x48/0x60
[62530.869625] try_to_unmap+0x93/0xf0
[62530.869626] ? page_remove_rmap+0x2a0/0x2a0
[62530.869627] ? page_not_mapped+0x20/0x20
[62530.869629] ? page_get_anon_vma+0x90/0x90
[62530.869630] ? invalid_mkclean_vma+0x20/0x20
[62530.869631] migrate_pages+0x946/0xaa0
[62530.869633] ? __ClearPageMovable+0x10/0x10
[62530.869635] ? isolate_freepages_block+0x3c0/0x3c0
[62530.869636] compact_zone+0x22f/0x970
[62530.869638] compact_zone_order+0xa3/0xd0
[62530.869640] try_to_compact_pages+0x1a5/0x2a0
[62530.869641] ? try_to_compact_pages+0x1a5/0x2a0
[62530.869643] __alloc_pages_direct_compact+0x50/0x110
[62530.869644] __alloc_pages_slowpath+0x4da/0xf30
[62530.869646] __alloc_pages_nodemask+0x262/0x280
[62530.869648] alloc_pages_vma+0x165/0x1e0
[62530.869649] shmem_alloc_hugepage+0xd0/0x130
[62530.869651] ? __radix_tree_insert+0x45/0x230
[62530.869652] ? __vm_enough_memory+0x29/0x130
[62530.869654] shmem_alloc_and_acct_page+0x10d/0x1e0
[62530.869655] shmem_getpage_gfp+0x426/0xc00
[62530.869657] shmem_fault+0xa0/0x1e0
[62530.869659] ? file_update_time+0x60/0x110
[62530.869660] __do_fault+0x1e/0xc0
[62530.869661] __handle_mm_fault+0xa35/0x1170
[62530.869662] handle_mm_fault+0xcc/0x1c0
[62530.869664] __do_page_fault+0x262/0x4f0
[62530.869666] do_page_fault+0x2e/0xe0
[62530.869667] page_fault+0x22/0x30
[62530.869668] RIP: 0033:0x404335
[62530.869669] RSP: 002b:00007fff7829e420 EFLAGS: 00010216
[62530.869670] RAX: 00007f6210400000 RBX: 0000000000000004 RCX: 0000000000b80000
[62530.869670] RDX: 0000000000002e01 RSI: 0000000000008000 RDI: 0000000000000004
[62530.869671] RBP: 0000000000000019 R08: 0000000000000002 R09: 0000000000000000
[62530.869671] R10: 0000000000000559 R11: 0000000000000246 R12: 0000000008000000
[62530.869672] R13: 00000000004042f0 R14: 0000000000000004 R15: 000000000000007e
[62530.869673] Code: 00 8b b0 18 05 00 00 48 8d 8b b0 00 00 00 48 8d 90 c0 06 00 00 4d 89 f0 48 c7 c7 40 c0 c8 a3 c6 05 68 c5 e8 00 01 e8 c2 68 04 00 <0f> ff 4d 85 ed 74 18 49 8b 45 20 48 8b 70 08 8b 86 00 01 00 00
[62530.869691] ---[ end trace 01e01ad0ff5781f8 ]---
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103739
Fixes: 21cc6431e0c2 ("drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171114173520.8829-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
(cherry picked from commit 41729bf2248bc8593e5103d43974079cc269524c)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2017-11-21 11:40:01 +02:00
..
2017-11-21 11:39:43 +02:00
2017-10-18 14:56:10 +03:00
2017-06-01 15:53:03 +03:00
2017-05-10 13:47:55 +03:00
2017-08-30 12:08:11 -07:00
2017-10-18 15:46:11 +01:00
2017-11-21 11:39:31 +02:00
2017-10-23 11:55:13 +03:00
2017-06-14 14:06:22 +01:00
2017-10-16 20:44:19 +01:00
2017-07-27 22:07:24 +02:00
2017-11-09 16:18:37 +02:00
2017-08-18 11:59:02 +01:00
2017-10-09 17:07:29 +01:00
2017-11-02 12:40:41 +10:00
2017-10-09 17:07:29 +01:00
2017-10-09 17:07:29 +01:00
2017-11-09 16:18:15 +02:00
2017-10-07 10:11:57 +01:00
2017-10-09 17:07:29 +01:00
2017-08-15 15:46:57 +01:00
2017-10-16 20:44:19 +01:00
2017-10-16 20:44:19 +01:00
2017-10-11 17:51:21 +02:00
2017-10-04 17:52:46 +01:00
2017-11-09 16:18:31 +02:00
2017-10-16 20:44:19 +01:00
2017-10-16 20:44:19 +01:00
2017-05-03 11:08:48 +01:00
2017-05-03 11:08:52 +01:00
2017-11-21 11:40:01 +02:00
2017-11-09 16:18:25 +02:00
2017-05-03 11:08:48 +01:00
2017-10-07 10:11:43 +01:00
2017-10-07 10:11:41 +01:00
2017-10-11 08:56:54 +01:00
2017-11-09 16:18:11 +02:00
2017-10-06 14:09:40 +03:00
2017-11-09 16:18:11 +02:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-09-18 19:46:36 +01:00
2017-09-18 19:46:36 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-08-03 18:18:44 +01:00
2017-08-03 18:18:05 +01:00
2017-10-04 15:51:09 +02:00
2017-10-04 15:51:09 +02:00
2017-10-19 15:52:52 +03:00
2017-11-02 12:40:41 +10:00
2017-10-16 13:56:29 +03:00
2017-11-02 12:40:41 +10:00
2017-08-18 11:55:02 +01:00
2017-09-29 12:30:17 +01:00
2017-10-18 14:56:10 +03:00
2017-07-09 18:48:37 -07:00
2017-05-03 11:08:48 +01:00
2017-05-03 11:08:48 +01:00
2017-10-11 08:57:02 +01:00
2017-10-04 15:19:20 +01:00
2017-10-06 17:49:46 +01:00
2017-08-15 10:12:48 +08:00
2017-10-16 13:56:29 +03:00
2017-11-09 16:18:33 +02:00
2017-10-09 17:07:29 +01:00
2017-06-07 12:20:49 +02:00
2017-09-01 16:48:24 +03:00
2017-06-12 09:45:55 -07:00
2017-10-10 18:07:48 +03:00
2017-11-04 05:43:44 +10:00
2017-11-21 11:39:56 +02:00
2017-10-11 08:56:56 +01:00
2017-10-09 10:33:23 -07:00
2017-10-19 15:52:53 +03:00
2017-10-16 18:53:28 +03:00
2017-11-02 12:40:41 +10:00
2017-09-26 13:02:44 -07:00
2017-11-09 16:18:35 +02:00
2017-09-22 14:50:36 +03:00
2017-07-19 08:32:42 +02:00
2017-10-17 18:23:30 +03:00
2017-10-19 15:35:30 +03:00
2017-10-03 13:47:29 -07:00
2017-10-16 17:11:06 -07:00
2017-06-12 09:42:18 -07:00
2017-10-19 15:52:52 +03:00
2017-08-16 18:02:00 +03:00
2017-02-28 11:54:52 +02:00
2017-08-21 11:52:29 +03:00
2017-10-20 11:28:49 +03:00
2017-03-07 15:18:43 +02:00
2017-10-11 19:44:19 +03:00
2017-11-09 16:18:11 +02:00
2017-10-18 17:02:45 +03:00
2017-10-13 16:53:59 +02:00
2017-09-25 16:54:09 +03:00
2017-02-22 12:12:17 +00:00
2017-02-22 12:12:17 +00:00
2017-05-26 13:26:53 +01:00
2017-05-26 13:26:53 +01:00
2017-10-16 18:53:29 +03:00
2017-10-16 18:53:25 +03:00
2017-10-16 18:53:23 +03:00
2017-10-06 14:09:40 +03:00
2017-10-06 14:09:40 +03:00
2017-10-16 18:53:23 +03:00
2017-10-16 18:53:25 +03:00
2017-09-22 14:50:36 +03:00
2017-05-30 15:59:47 +03:00
2017-09-22 14:50:36 +03:00
2017-10-17 12:38:58 +03:00
2017-08-11 11:53:47 -07:00
2017-10-16 18:53:30 +03:00
2017-10-06 16:01:15 +01:00
2017-09-01 10:30:40 -07:00
2017-05-26 11:51:18 +03:00
2017-11-09 16:18:13 +02:00
2017-10-04 17:52:45 +01:00
2017-10-13 12:15:10 +03:00
2017-10-11 21:43:30 +03:00
2017-06-07 07:29:51 -07:00
2017-09-26 09:14:20 -07:00
2017-09-22 14:50:36 +03:00
2017-10-12 10:03:04 +10:00
2017-09-22 14:50:36 +03:00
2017-10-10 18:29:52 +03:00
2017-11-09 16:18:35 +02:00
2017-10-17 12:38:58 +03:00
2017-08-14 12:15:49 +03:00
2017-10-16 20:44:19 +01:00
2017-11-09 16:18:11 +02:00
2017-10-11 08:56:56 +01:00
2017-09-01 10:30:40 -07:00
2017-10-11 08:56:56 +01:00
2017-10-20 10:56:10 +10:00
2017-09-13 13:27:20 +01:00
2017-10-17 16:42:56 +01:00
2017-10-17 16:42:56 +01:00
2017-10-16 18:53:30 +03:00
2017-10-06 09:37:20 +03:00
2017-11-21 11:39:31 +02:00
2017-11-21 11:39:31 +02:00
2017-10-20 16:18:03 -07:00
2017-09-19 13:06:21 +01:00
2017-08-12 10:30:42 +01:00
2017-10-16 18:53:25 +03:00