Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
To: intel-xe@lists.freedesktop.org
Subject: [Intel-xe] [PATCH v3 4/4] drm/xe/bo: Evict VRAM to TT rather than to system
Date: Mon, 26 Jun 2023 20:17:41 +0200	[thread overview]
Message-ID: <20230626181741.32820-5-thomas.hellstrom@linux.intel.com> (raw)
In-Reply-To: <20230626181741.32820-1-thomas.hellstrom@linux.intel.com>

The main difference is that we don't bounce and sync on eviction, allowing
for pipelined eviction. Moving forward we also need to be careful with
dma mappings which can be released in SYSTEM but may remain in TT.

v2:
- Remove a stale comment (Matthew Brost)

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 03b83150e8cd..21fca198a882 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -40,6 +40,20 @@ static struct ttm_placement sys_placement = {
 	.busy_placement = &sys_placement_flags,
 };
 
+static const struct ttm_place tt_placement_flags = {
+	.fpfn = 0,
+	.lpfn = 0,
+	.mem_type = XE_PL_TT,
+	.flags = 0,
+};
+
+static struct ttm_placement tt_placement = {
+	.num_placement = 1,
+	.placement = &tt_placement_flags,
+	.num_busy_placement = 1,
+	.busy_placement = &sys_placement_flags,
+};
+
 bool mem_type_is_vram(u32 mem_type)
 {
 	return mem_type >= XE_PL_VRAM0 && mem_type != XE_PL_STOLEN;
@@ -225,9 +239,10 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo,
 	case XE_PL_VRAM0:
 	case XE_PL_VRAM1:
 	case XE_PL_STOLEN:
+		*placement = tt_placement;
+		break;
 	case XE_PL_TT:
 	default:
-		/* for now kick out to system */
 		*placement = sys_placement;
 		break;
 	}
-- 
2.40.1


  parent reply	other threads:[~2023-06-26 18:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-26 18:17 [Intel-xe] [PATCH v3 0/4] drm/xe: Eviction fixes and optimizations Thomas Hellström
2023-06-26 18:17 ` [Intel-xe] [PATCH v3 1/4] drm/xe/bo: Fix swapin when moving to VRAM Thomas Hellström
2023-06-26 18:17 ` [Intel-xe] [PATCH v3 2/4] drm/xe/bo: Avoid creating a system resource when allocating a fresh VRAM bo Thomas Hellström
2023-06-27  8:54   ` Matthew Auld
2023-06-26 18:17 ` [Intel-xe] [PATCH v3 3/4] drm/xe/bo: Gracefully handle errors from ttm_bo_move_accel_cleanup() Thomas Hellström
2023-06-27  8:55   ` Matthew Auld
2023-06-26 18:17 ` Thomas Hellström [this message]
2023-06-26 18:20 ` [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: Eviction fixes and optimizations (rev3) Patchwork
2023-06-26 18:20 ` [Intel-xe] ✓ CI.checkpatch: " Patchwork
2023-06-26 18:22 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-06-26 18:25 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-06-26 18:26 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-06-26 18:27 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-06-26 19:11 ` [Intel-xe] ○ CI.BAT: info " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230626181741.32820-5-thomas.hellstrom@linux.intel.com \
    --to=thomas.hellstrom@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox