All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
To: intel-xe@lists.freedesktop.org
Cc: matthew.auld@intel.com
Subject: [Intel-xe] [PATCH v2 2/7] drm/xe/migrate: Update cpu page-table updates
Date: Wed, 15 Mar 2023 16:55:02 +0100	[thread overview]
Message-ID: <20230315155507.43933-3-thomas.hellstrom@linux.intel.com> (raw)
In-Reply-To: <20230315155507.43933-1-thomas.hellstrom@linux.intel.com>

Don't wait for GPU to be able to update page-tables using CPU. Putting
ourselves to sleep may be more of a problem than using GPU for
page-table updates. Also allow the vm to be NULL since the migrate
kunit test uses NULL for vm.

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/xe/xe_migrate.c | 30 ++++++++++--------------------
 1 file changed, 10 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index c0523d8fe944..39ed63829224 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -979,25 +979,13 @@ xe_migrate_update_pgtables_cpu(struct xe_migrate *m,
 	int err;
 	u32 i;
 
-	/* Wait on BO moves for 10 ms, then fall back to GPU job */
-	if (bo) {
-		long wait;
+	if (bo && !dma_resv_test_signaled(bo->ttm.base.resv,
+					  DMA_RESV_USAGE_KERNEL))
+		return ERR_PTR(-ETIME);
 
-		wait = dma_resv_wait_timeout(bo->ttm.base.resv,
-					     DMA_RESV_USAGE_KERNEL,
-					     true, HZ / 100);
-		if (wait <= 0)
-			return ERR_PTR(-ETIME);
-	}
-	if (wait_vm) {
-		long wait;
-
-		wait = dma_resv_wait_timeout(&vm->resv,
-					     DMA_RESV_USAGE_BOOKKEEP,
-					     true, HZ / 100);
-		if (wait <= 0)
-			return ERR_PTR(-ETIME);
-	}
+	if (wait_vm && !dma_resv_test_signaled(&vm->resv,
+					       DMA_RESV_USAGE_BOOKKEEP))
+		return ERR_PTR(-ETIME);
 
 	if (ops->pre_commit) {
 		err = ops->pre_commit(pt_update);
@@ -1011,8 +999,10 @@ xe_migrate_update_pgtables_cpu(struct xe_migrate *m,
 			      update->ofs, update->qwords, update);
 	}
 
-	trace_xe_vm_cpu_bind(vm);
-	xe_device_wmb(vm->xe);
+	if (vm) {
+		trace_xe_vm_cpu_bind(vm);
+		xe_device_wmb(vm->xe);
+	}
 
 	fence = dma_fence_get_stub();
 
-- 
2.39.2


  parent reply	other threads:[~2023-03-15 15:55 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-15 15:55 [Intel-xe] [PATCH v2 0/7] Cpu page-table updates and fixes Thomas Hellström
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 1/7] drm/xe: Use a define to set initial seqno for fences Thomas Hellström
2023-03-16 16:09   ` Matthew Brost
2023-03-16 16:45     ` Thomas Hellström
2023-03-15 15:55 ` Thomas Hellström [this message]
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 3/7] drm/xe/tests: Support CPU page-table updates in the migrate test Thomas Hellström
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 4/7] drm/xe: Introduce xe_engine_is_idle() Thomas Hellström
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 5/7] drm/xe: Use a small negative initial seqno Thomas Hellström
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 6/7] drm/xe/tests: Test both CPU- and GPU page-table updates with the migrate test Thomas Hellström
2023-03-15 15:55 ` [Intel-xe] [PATCH v2 7/7] drm/xe/vm: Defer vm rebind until next exec if nothing to execute Thomas Hellström
2023-03-15 23:23   ` Matthew Brost
2023-03-15 15:58 ` [Intel-xe] ✓ CI.Patch_applied: success for Cpu page-table updates and fixes (rev2) Patchwork
2023-03-15 15:59 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-03-15 16:03 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-03-15 16:14 ` [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=20230315155507.43933-3-thomas.hellstrom@linux.intel.com \
    --to=thomas.hellstrom@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=matthew.auld@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.