diff options
author | Sai Gowtham Ch <sai.gowtham.ch@intel.com> | 2024-04-18 12:29:47 +0530 |
---|---|---|
committer | Sai Gowtham Ch <sai.gowtham.ch@intel.com> | 2024-04-18 12:29:47 +0530 |
commit | 30b362edd01b271cc81855a1488dd56e5ceebc67 (patch) | |
tree | b984f245a3bb6391df524b989474a2844cf7ee57 | |
parent | a7148777ec695ac8a8eaac2b28bf0bf76bffb832 (diff) |
tests/intel/xe_pm: Validate vm-bind prefetch flag with suspend and resume
Test functionality of vm_bind prefetch with S&R.
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
-rw-r--r-- | tests/intel/xe_pm.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/tests/intel/xe_pm.c b/tests/intel/xe_pm.c index 6e5efc4fa..7ef0c0001 100644 --- a/tests/intel/xe_pm.c +++ b/tests/intel/xe_pm.c @@ -34,6 +34,7 @@ #define MAGIC_2 0xdeadbeef #define USERPTR (0x1 << 0) +#define PREFETCH (0x1 << 1) typedef struct { int fd_xe; @@ -289,6 +290,7 @@ static void close_fw_handle(int sig) * arg[2]: * * @userptr: userptr + * @prefetch: prefetch */ static void test_exec(device_t device, struct drm_xe_engine_class_instance *eci, @@ -341,9 +343,15 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci, data = aligned_alloc(xe_get_default_alignment(device.fd_xe), bo_size); memset(data, 0, bo_size); } else { - bo = xe_bo_create(device.fd_xe, vm, bo_size, - vram_if_possible(device.fd_xe, eci->gt_id), - DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM); + if (flags & PREFETCH) + bo = xe_bo_create(device.fd_xe, 0, bo_size, + all_memory_regions(device.fd_xe) | + vram_if_possible(device.fd_xe, 0), + DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM); + else + bo = xe_bo_create(device.fd_xe, vm, bo_size, + vram_if_possible(device.fd_xe, eci->gt_id), + DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM); data = xe_bo_map(device.fd_xe, bo, bo_size); } @@ -361,6 +369,9 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci, else xe_vm_bind_userptr_async(device.fd_xe, vm, bind_exec_queues[0], to_user_pointer(data), addr, bo_size, sync, 1); + if (flags & PREFETCH) + xe_vm_prefetch_async(device.fd_xe, vm, bind_exec_queues[0], 0, addr, + bo_size, sync, 1, 0); if (check_rpm && runtime_usage_available(device.pci_xe)) igt_assert(igt_pm_get_runtime_usage(device.pci_xe) > rpm_usage); @@ -617,6 +628,7 @@ igt_main unsigned int flags; } vm_op[] = { { "userptr", USERPTR }, + { "prefetch", PREFETCH }, { NULL }, }; |