FAILED: patch "[PATCH] drm/i915: Don't use BAR mappings for ring buffers with LLC" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-4.19.y
git checkout FETCH_HEAD
git cherry-pick -x 85636167e3206c3fbd52254fc432991cc4e90194
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 4.19.y' HEAD^..
Possible dependencies:
85636167e320 ("drm/i915: Don't use BAR mappings for ring buffers with LLC") fa85bfd19c26 ("drm/i915: Update the helper to set correct mapping")e09e903a6e89 ("drm/i915/selftests: Prepare execlists and lrc selftests for obj->mm.lock removal") 17b7ab92bec3 ("drm/i915/selftests: Prepare hangcheck for obj->mm.lock removal") d3ad29567d4e ("drm/i915/selftests: Prepare context selftest for obj->mm.lock removal") c858ffa17716 ("drm/i915: Lock ww in ucode objects correctly")c05258889ed4 ("drm/i915: Add igt_spinner_pin() to allow for ww locking around spinner.") 6895649bf13f ("drm/i915/selftests: Set error returns")a0d3fdb628b8 ("drm/i915/gt: Split logical ring contexts from execlist submission") d0d829e56674 ("drm/i915: split gen8+ flush and bb_start emission functions") 70a2b431c364 ("drm/i915/gt: Rename lrc.c to execlists_submission.c")d33fcd798cb7 ("drm/i915/gt: Ignore dt==0 for reporting underflows")09212e81e545 ("drm/i915/gt: Flush xcs before tgl breadcrumbs")c10f6019d0b2 ("drm/i915/gt: Use the local HWSP offset during submission") 89db95377be4 ("drm/i915/gt: Confirm the context survives execution")052e04f17056 ("drm/i915/selftests: Fix locking inversion in lrc selftest.") 47b086934f42 ("drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin.") 3999a7087989 ("drm/i915: Rework intel_context pinning to do everything outside of pin_mutex") 2bf541ff6d06 ("drm/i915: Pin engine before pinning all objects, v5.") b49a7d51c32e ("drm/i915: Nuke arguments to eb_pin_engine")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 85636167e3206c3fbd52254fc432991cc4e90194 Mon Sep 17 00:00:00 2001
From: John Harrison <[email protected]>
Date: Wed, 15 Feb 2023 17:11:01 -0800
Subject: [PATCH] drm/i915: Don't use BAR mappings for ring buffers with LLC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Direction from hardware is that ring buffers should never be mapped via the BAR on systems with LLC. There are too many caching pitfalls due to the way BAR accesses are routed. So it is safest to just not use it.
drivers/gpu/drm/i915/gt/intel_ring.c +2 -2
@@ -53,7 +53,7 @@ int intel_ring_pin(struct intel_ring *ring, struct i915_gem_ww_ctx *ww)if (unlikely (ret)) goto err_unpin; -if (i915_vma_is_map_and_fenceable (vma)) { +if (i915_vma_is_map_and_fenceable (vma) && !HAS_LLC (vma->vm->i915)) { addr = (void __force *)i915_vma_pin_iomap (vma); }else {int type =i915_coherent_map_type (vma->vm->i915, vma->obj, false);
@@ -98,7 +98,7 @@ void intel_ring_unpin(struct intel_ring *ring)return ;i915_vma_unset_ggtt_write (vma); -if (i915_vma_is_map_and_fenceable (vma)) +if (i915_vma_is_map_and_fenceable (vma) && !HAS_LLC (vma->vm->i915))i915_vma_unpin_iomap (vma);else i915_gem_object_unpin_map (vma->obj);
PATCH 1/1 drm/i915: Don't use BAR mappings for ring buffers with LLC
From: John Harrison <[email protected]>
Direction from hardware is that ring buffers should never be mapped via the BAR on systems with LLC. There are too many caching pitfalls due to the way BAR accesses are routed. So it is safest to just not use it.
--- drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/gpu/drm/i915/intel_ringbuffer.c +2 -2
@@ -1083,7 +1083,7 @@ int intel_ring_pin(struct intel_ring *ring,if (unlikely (ret))return ret; -if (i915_vma_is_map_and_fenceable (vma)) +if (i915_vma_is_map_and_fenceable (vma) && !HAS_LLC (vma->vm->i915)) addr = (void __force *)i915_vma_pin_iomap (vma);else addr =i915_gem_object_pin_map (vma->obj, map);
@@ -1118,7 +1118,7 @@ void intel_ring_unpin(struct intel_ring *ring)/* Discard any unused bytes beyond that submitted to hw. */ intel_ring_reset (ring, ring->tail); -if (i915_vma_is_map_and_fenceable (ring->vma)) +if (i915_vma_is_map_and_fenceable (ring->vma) && !HAS_LLC (ring->vma->vm->i915))i915_vma_unpin_iomap (ring->vma);else i915_gem_object_unpin_map (ring->vma->obj);
Signature · 1 line
2.39.1
Patchwork
CI[Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Don't use BAR mappings for ring buffers with LLC (rev2)
In reply to [email protected]== Series Details ==
== Series Details ==
Series: drm/i915: Don't use BAR mappings for ring buffers with LLC (rev2)
URL : https://patchwork.freedesktop.org/series/115090/
State : failure
== Summary ==
Error: patch https://patchwork.freedesktop.org/api/1.0/series/115090/revisions/2/mbox/ not applied
Applying: drm/i915: Don't use BAR mappings for ring buffers with LLC
error: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_ringbuffer.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 drm/i915: Don't use BAR mappings for ring buffers with LLC When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".