Chris Wilson
42d1051130
drm/i915: Lift i915_vma_pin() out of intel_renderstate_emit()
...
Once inside a request, inside the timeline->mutex, pinning is verboten.
<4> [896.032829] ======================================================
<4> [896.032831] WARNING: possible circular locking dependency detected
<4> [896.032835] 5.4.0-rc8-CI-Patchwork_15533+ #1 Tainted: G U
<4> [896.032838] ------------------------------------------------------
<4> [896.032841] gem_exec_parall/3720 is trying to acquire lock:
<4> [896.032844] ffff888401863270 (&kernel#2){+.+.}, at: i915_request_create+0x16/0x1c0 [i915]
<4> [896.032915]
but task is already holding lock:
<4> [896.032917] ffff8883ec1c93c0 (&vm->mutex){+.+.}, at: i915_vma_pin+0xf3/0x11c0 [i915]
<4> [896.032952]
which lock already depends on the new lock.
<4> [896.032954]
the existing dependency chain (in reverse order) is:
<4> [896.032956]
-> #1 (&vm->mutex){+.+.}:
<4> [896.032961] __mutex_lock+0x9a/0x9d0
<4> [896.032995] i915_vma_pin+0xf3/0x11c0 [i915]
<4> [896.033033] intel_renderstate_emit+0xb9/0x9e0 [i915]
<4> [896.033081] i915_gem_init+0x5a9/0xa50 [i915]
<4> [896.033112] i915_driver_probe+0xb00/0x15f0 [i915]
<4> [896.033144] i915_pci_probe+0x43/0x1c0 [i915]
<4> [896.033149] pci_device_probe+0x9e/0x120
<4> [896.033154] really_probe+0xea/0x420
<4> [896.033158] driver_probe_device+0x10b/0x120
<4> [896.033161] device_driver_attach+0x4a/0x50
<4> [896.033164] __driver_attach+0x97/0x130
<4> [896.033168] bus_for_each_dev+0x74/0xc0
<4> [896.033171] bus_add_driver+0x142/0x220
<4> [896.033174] driver_register+0x56/0xf0
<4> [896.033178] do_one_initcall+0x58/0x2ff
<4> [896.033183] do_init_module+0x56/0x1f8
<4> [896.033187] load_module+0x243e/0x29f0
<4> [896.033190] __do_sys_finit_module+0xe9/0x110
<4> [896.033194] do_syscall_64+0x4f/0x210
<4> [896.033197] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [896.033200]
-> #0 (&kernel#2){+.+.}:
<4> [896.033206] __lock_acquire+0x1328/0x15d0
<4> [896.033209] lock_acquire+0xa7/0x1c0
<4> [896.033213] __mutex_lock+0x9a/0x9d0
<4> [896.033255] i915_request_create+0x16/0x1c0 [i915]
<4> [896.033287] intel_engine_flush_barriers+0x4c/0x100 [i915]
<4> [896.033327] ggtt_flush+0x37/0x60 [i915]
<4> [896.033366] i915_gem_evict_something+0x46b/0x5a0 [i915]
<4> [896.033407] i915_gem_gtt_insert+0x21d/0x6a0 [i915]
<4> [896.033449] i915_vma_pin+0xb36/0x11c0 [i915]
<4> [896.033488] gen6_ppgtt_pin+0xd5/0x170 [i915]
<4> [896.033523] ring_context_pin+0x2e/0xc0 [i915]
<4> [896.033554] __intel_context_do_pin+0x6b/0x190 [i915]
<4> [896.033591] i915_gem_do_execbuffer+0x1814/0x26c0 [i915]
<4> [896.033627] i915_gem_execbuffer2_ioctl+0x11b/0x460 [i915]
<4> [896.033632] drm_ioctl_kernel+0xa7/0xf0
<4> [896.033635] drm_ioctl+0x2e1/0x390
<4> [896.033638] do_vfs_ioctl+0xa0/0x6f0
<4> [896.033641] ksys_ioctl+0x35/0x60
<4> [896.033644] __x64_sys_ioctl+0x11/0x20
<4> [896.033647] do_syscall_64+0x4f/0x210
<4> [896.033650] entry_SYSCALL_64_after_hwframe+0x49/0xbe
Lift the object allocation and pin prior to the request construction.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191202204316.2665847-1-chris@chris-wilson.co.uk
2019-12-03 13:23:00 +00:00
..
2019-11-14 08:43:07 +10:00
2019-11-14 09:28:46 +10:00
2019-11-14 05:53:10 +10:00
2019-08-14 18:31:10 +02:00
2019-08-14 19:27:26 +02:00
2019-10-17 13:59:16 +02:00
2019-10-11 18:22:50 +03:00
2019-10-24 16:12:30 +02:00
2019-10-23 18:20:05 +02:00
2019-10-24 13:55:56 +02:00
2019-11-14 05:53:10 +10:00
2019-10-28 21:12:27 +09:00
2019-08-28 22:11:03 +02:00
2019-10-24 17:59:45 +02:00
2019-10-24 16:12:36 +02:00
2019-10-21 14:23:25 +02:00
2019-10-04 17:04:05 +01:00
2019-12-03 13:23:00 +00:00
2019-10-03 16:38:50 +02:00
2019-09-19 16:24:24 -07:00
2019-10-17 23:42:02 +08:00
2019-10-03 16:38:50 +02:00
2019-11-08 13:19:55 +10:00
2019-10-10 12:50:02 +02:00
2019-06-30 09:48:05 +02:00
2019-10-17 13:59:16 +02:00
2019-11-13 15:34:15 -05:00
2019-10-14 22:19:32 +02:00
2019-10-24 14:29:48 -04:00
2019-10-23 11:14:11 -04:00
2019-10-23 12:10:05 +02:00
2019-11-14 05:53:10 +10:00
2019-10-24 13:55:56 +02:00
2019-10-25 11:40:51 +02:00
2019-07-17 12:52:55 +02:00
2019-11-14 05:53:10 +10:00
2019-10-16 00:28:32 +03:00
2019-10-23 18:21:01 +02:00
2019-06-05 20:31:04 +02:00
2019-11-07 18:08:07 -05:00
2019-10-04 13:42:33 +01:00
2019-07-15 18:11:31 +02:00
2019-06-05 20:29:57 +02:00
2019-09-16 15:14:43 +02:00
2019-09-16 15:14:10 +02:00
2019-10-10 12:50:03 +02:00
2019-07-17 12:52:55 +02:00
2019-11-01 10:49:29 +01:00
2019-10-11 09:30:53 +10:00
2019-11-20 15:54:38 +02:00
2019-11-14 08:41:23 +01:00
2019-09-08 19:04:23 +02:00
2019-09-16 15:13:02 -07:00
2019-11-14 05:53:10 +10:00
2019-10-29 13:10:07 +01:00
2019-10-23 11:14:11 -04:00
2019-08-13 09:09:30 +02:00
2019-09-24 15:54:08 -07:00
2019-10-22 11:34:03 +02:00
2019-10-10 15:45:35 +02:00
2019-11-14 08:41:36 +01:00
2019-10-24 13:55:56 +02:00
2019-07-22 21:24:10 +02:00
2019-07-19 23:24:16 +02:00
2019-07-16 11:25:02 +02:00
2019-11-14 05:53:10 +10:00
2019-09-18 18:43:36 +02:00
2019-10-03 16:38:50 +02:00
2019-09-23 15:31:53 +08:00
2019-05-27 18:07:03 +02:00
2019-10-09 20:04:55 +02:00
2019-06-13 13:00:29 -04:00
2019-07-15 19:04:27 -07:00
2019-10-25 09:35:06 +02:00
2019-10-03 16:38:50 +02:00
2019-08-01 15:01:29 +02:00
2019-05-27 18:07:03 +02:00
2019-09-20 18:46:18 +03:00
2019-05-27 18:07:03 +02:00
2019-09-16 15:13:02 -07:00
2019-10-03 16:38:50 +02:00
2019-06-08 16:46:37 +02:00
2019-06-13 16:39:16 +02:00
2019-10-08 09:41:06 -04:00
2019-09-30 20:17:31 +03:00
2019-06-14 16:59:51 +02:00
2019-07-16 11:25:02 +02:00
2019-07-25 16:39:35 -04:00
2019-10-08 18:29:00 +02:00
2019-05-06 16:00:48 +03:00
2019-10-23 18:22:10 +02:00
2019-09-03 19:30:06 -04:00
2019-11-06 15:20:37 -05:00
2019-10-03 16:38:50 +02:00
2019-09-30 20:15:53 +03:00
2019-08-07 11:56:48 -04:00
2019-10-02 16:28:55 +03:00
2019-10-23 11:14:11 -04:00
2019-08-28 22:11:03 +02:00
2019-05-30 11:26:37 -07:00
2019-10-28 10:07:54 +01:00
2019-11-07 21:22:15 +00:00
2019-05-27 18:07:03 +02:00
2019-05-20 13:35:56 +02:00
2019-05-27 18:07:03 +02:00
2019-07-22 16:04:53 -04:00
2019-06-19 12:07:29 +02:00
2019-08-13 09:09:30 +02:00
2019-10-29 13:29:21 -05:00
2019-10-17 13:59:16 +02:00
2019-10-25 11:40:51 +02:00
2019-10-29 13:29:21 -05:00
2019-05-27 18:07:03 +02:00
2019-08-06 13:18:42 +05:30
2019-06-17 17:37:01 +02:00
2019-07-22 21:24:10 +02:00
2019-09-18 18:42:21 +02:00
2019-05-27 18:07:03 +02:00
2019-08-22 10:41:06 +03:00
2019-06-19 12:07:29 +02:00
2019-07-16 11:25:02 +02:00
2019-05-27 18:06:47 +02:00
2019-07-16 11:25:02 +02:00
2019-09-30 20:16:28 +03:00
2019-10-22 15:09:15 +02:00
2019-11-07 15:00:16 +02:00
2019-10-04 13:43:43 +01:00
2019-10-23 11:00:41 +02:00
2019-09-18 11:27:18 +02:00
2019-09-19 16:24:24 -07:00
2019-07-16 12:21:41 -07:00
2019-09-20 15:03:42 -04:00
2019-07-01 16:58:09 +02:00
2019-09-08 19:04:01 +02:00
2019-05-27 18:07:03 +02:00
2019-05-27 18:07:03 +02:00
2019-10-17 13:59:16 +02:00
2019-10-02 16:28:55 +03:00
2019-09-16 15:13:53 -07:00
2019-05-27 18:07:03 +02:00
2019-05-27 18:07:03 +02:00
2019-07-16 11:25:02 +02:00
2019-05-27 18:07:03 +02:00
2019-11-06 13:00:21 -05:00
2019-10-24 13:55:56 +02:00
2019-10-18 12:24:56 +02:00
2019-08-06 13:16:54 +05:30
2019-05-27 18:07:03 +02:00
2019-09-03 09:46:18 +02:00
2019-10-08 18:43:26 -04:00
2019-07-16 11:25:02 +02:00
2019-05-27 18:07:03 +02:00
2019-09-12 19:54:42 +02:00
2019-09-23 15:32:53 +08:00
2019-11-15 13:17:39 +02:00
2019-10-03 16:38:50 +02:00