From: Matthew Auld Date: Fri, 1 Sep 2023 14:28:25 +0000 (+0100) Subject: drm/xe/selftests: consider multi-GT for eviction test X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=fba153b0d0b769bb2379c9e78968036d17bdfb6b;p=linux.git drm/xe/selftests: consider multi-GT for eviction test We need to sanitize and reset each GT, since xe_bo_evict_all() will evict everything regardless of GT, which can leave other GTs in a broken state. Signed-off-by: Matthew Auld Cc: Nirmoy Das Reviewed-by: Nirmoy Das Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/tests/xe_bo.c b/drivers/gpu/drm/xe/tests/xe_bo.c index b32a9068d76c8..0e4ec22c5667e 100644 --- a/drivers/gpu/drm/xe/tests/xe_bo.c +++ b/drivers/gpu/drm/xe/tests/xe_bo.c @@ -181,7 +181,8 @@ static int evict_test_run_gt(struct xe_device *xe, struct xe_gt *gt, struct kuni XE_BO_CREATE_VRAM_IF_DGFX(gt_to_tile(gt)); struct xe_vm *vm = xe_migrate_get_vm(xe_device_get_root_tile(xe)->migrate); struct ww_acquire_ctx ww; - int err, i; + struct xe_gt *__gt; + int err, i, id; kunit_info(test, "Testing device %s gt id %u vram id %u\n", dev_name(xe->drm.dev), gt->info.id, gt_to_tile(gt)->id); @@ -218,7 +219,8 @@ static int evict_test_run_gt(struct xe_device *xe, struct xe_gt *gt, struct kuni goto cleanup_all; } - xe_gt_sanitize(gt); + for_each_gt(__gt, xe, id) + xe_gt_sanitize(__gt); err = xe_bo_restore_kernel(xe); /* * Snapshotting the CTB and copying back a potentially old @@ -231,8 +233,10 @@ static int evict_test_run_gt(struct xe_device *xe, struct xe_gt *gt, struct kuni * however seems quite fragile not to also restart the GT. Try * to do that here by triggering a GT reset. */ - xe_gt_reset_async(gt); - flush_work(>->reset.worker); + for_each_gt(__gt, xe, id) { + xe_gt_reset_async(__gt); + flush_work(&__gt->reset.worker); + } if (err) { KUNIT_FAIL(test, "restore kernel err=%pe\n", ERR_PTR(err));