From patchwork Tue Mar 14 02:22:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: John Harrison X-Patchwork-Id: 13173557 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 02F51C6FD1D for ; Tue, 14 Mar 2023 02:23:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 41E4310E6BE; Tue, 14 Mar 2023 02:23:11 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id E52CE10E6BE for ; Tue, 14 Mar 2023 02:23:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678760589; x=1710296589; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ol/yRHgVSLLsAyoppnxVwKbo+WcKNJSFWGI6ODNz2BA=; b=Xqe5OdfNBqjqWVNubv7llugBQ25S9PY+mN18smobCdjhPHMw6C7qbBWC jCO5cy0nO+VnB/ej22Knz4Y/L0ouzM8NN76ZRfIy/7k/hogEXjQIUi2N/ eY+ygPoPVlA1/jNRdsblf8gIZy4/ixga38xA+2MTwPcdrSV9og1ri+t4i 0MKztqIbIcNszPyO3cu8laTi/mUC9zcrLHb3lVQUYvFmdaB3zcimo9n2P 0PrczSJbJ0bcCKo1fYkSsVNCgTSt2rcZVi3Zp8rQPWersxvyLwn+BWOJ9 14D25bDbYNLk9nkSgDhmnS25WzO9vsKi/wZw8DloXXVv3oVtYW728bBu8 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="325674334" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="325674334" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 19:23:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="822185289" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="822185289" Received: from relo-linux-5.jf.intel.com ([10.165.21.152]) by fmsmga001.fm.intel.com with ESMTP; 13 Mar 2023 19:23:08 -0700 From: John.C.Harrison@Intel.com To: stable@vger.kernel.org Date: Mon, 13 Mar 2023 19:22:11 -0700 Message-Id: <20230314022211.1393031-1-John.C.Harrison@Intel.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <167820543971229@kroah.com> References: <167820543971229@kroah.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 5.4.y] drm/i915: Don't use BAR mappings for ring buffers with LLC X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jani Nikula , intel-gfx@lists.freedesktop.org, Chris Wilson , Rodrigo Vivi Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" From: John Harrison 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. Signed-off-by: John Harrison Fixes: 9d80841ea4c9 ("drm/i915: Allow ringbuffers to be bound anywhere") Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tvrtko Ursulin Cc: intel-gfx@lists.freedesktop.org Cc: # v4.9+ Tested-by: Jouni Högander Reviewed-by: Daniele Ceraolo Spurio Link: https://patchwork.freedesktop.org/patch/msgid/20230216011101.1909009-3-John.C.Harrison@Intel.com (cherry picked from commit 65c08339db1ada87afd6cfe7db8e60bb4851d919) Signed-off-by: Jani Nikula (cherry picked from commit 85636167e3206c3fbd52254fc432991cc4e90194) Signed-off-by: John Harrison --- drivers/gpu/drm/i915/gt/intel_ringbuffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_ringbuffer.c b/drivers/gpu/drm/i915/gt/intel_ringbuffer.c index eee9fcbe0434..808269b2108f 100644 --- a/drivers/gpu/drm/i915/gt/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/gt/intel_ringbuffer.c @@ -1208,7 +1208,7 @@ int intel_ring_pin(struct intel_ring *ring) 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 addr = i915_gem_object_pin_map(vma->obj, @@ -1252,7 +1252,7 @@ void intel_ring_unpin(struct intel_ring *ring) intel_ring_reset(ring, ring->emit); 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);