From: Chris Wilson Date: Mon, 3 Feb 2020 09:41:49 +0000 (+0000) Subject: drm/i915/gt: Warn about the hidden i915_vma_pin in timeline_get_seqno X-Git-Tag: Ubuntu-5.10.0-12.13~3201^2~18^2~187 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=8faa72511bb844fc1079aaebe786580205d27d86;p=mirror_ubuntu-hirsute-kernel.git drm/i915/gt: Warn about the hidden i915_vma_pin in timeline_get_seqno On seqno rollover, we need to allocate ourselves a new cacheline. This might incur grabbing a new page and pinning it into the GGTT, with some rather unfortunate lockdep implications. To avoid a mutex, and more specifically pinning in the GGTT from inside the kernel context being used to flush the GGTT in emergencies, we will likely need to lift the next-cacheline allocation to a pre-reservation. Signed-off-by: Chris Wilson Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20200203094152.4150550-3-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/gt/intel_timeline.c b/drivers/gpu/drm/i915/gt/intel_timeline.c index 465f87b65901..54e1e55f3c81 100644 --- a/drivers/gpu/drm/i915/gt/intel_timeline.c +++ b/drivers/gpu/drm/i915/gt/intel_timeline.c @@ -406,6 +406,8 @@ __intel_timeline_get_seqno(struct intel_timeline *tl, void *vaddr; int err; + might_lock(&tl->gt->ggtt->vm.mutex); + /* * If there is an outstanding GPU reference to this cacheline, * such as it being sampled by a HW semaphore on another timeline,