[PATCH 4/5] drm/xe/migrate: Allow xe_migrate_vram() also on non-pagefault capable devices
Matthew Brost
matthew.brost at intel.com
Thu Mar 20 21:26:28 UTC 2025
On Mon, Mar 17, 2025 at 11:41:31AM +0100, Thomas Hellström wrote:
> The drm_pagemap functionality does not depend on the device having
> recoverable pagefaults available. So allow xe_migrate_vram() also for
> such devices. Even if this will have little use in practice, it's
> beneficial for testin multi-device SVM, since a memory provider could
> be a non-pagefault capable gpu.
>
> Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost at intel.com>
> ---
> drivers/gpu/drm/xe/xe_migrate.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> index d364c9f458e7..f17234533504 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -1609,6 +1609,7 @@ static struct dma_fence *xe_migrate_vram(struct xe_migrate *m,
> {
> struct xe_gt *gt = m->tile->primary_gt;
> struct xe_device *xe = gt_to_xe(gt);
> + bool use_usm_batch = xe->info.has_usm;
> struct dma_fence *fence = NULL;
> u32 batch_size = 2;
> u64 src_L0_ofs, dst_L0_ofs;
> @@ -1625,7 +1626,7 @@ static struct dma_fence *xe_migrate_vram(struct xe_migrate *m,
> batch_size += pte_update_cmd_size(round_update_size);
> batch_size += EMIT_COPY_DW;
>
> - bb = xe_bb_new(gt, batch_size, true);
> + bb = xe_bb_new(gt, batch_size, use_usm_batch);
> if (IS_ERR(bb)) {
> err = PTR_ERR(bb);
> return ERR_PTR(err);
> @@ -1650,7 +1651,7 @@ static struct dma_fence *xe_migrate_vram(struct xe_migrate *m,
> XE_PAGE_SIZE);
>
> job = xe_bb_create_migration_job(m->q, bb,
> - xe_migrate_batch_base(m, true),
> + xe_migrate_batch_base(m, use_usm_batch),
> update_idx);
> if (IS_ERR(job)) {
> err = PTR_ERR(job);
> --
> 2.48.1
>
More information about the Intel-xe
mailing list