[PATCH i-g-t 2/3] tests/intel/xe_pm: Validate vm-bind prefetch flag with suspend and resume
Rodrigo Vivi
rodrigo.vivi at intel.com
Tue Apr 16 01:29:56 UTC 2024
On Mon, Apr 15, 2024 at 02:10:34PM +0530, sai.gowtham.ch at intel.com wrote:
> From: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
>
> Test functionality of vm_bind prefetch with S&R.
>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
> ---
> tests/intel/xe_pm.c | 19 ++++++++++++++++---
> 1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/tests/intel/xe_pm.c b/tests/intel/xe_pm.c
> index fafd7a52e..8857265a9 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 << 2)
what happen to the bit 1?
>
> typedef struct {
> int fd_xe;
> @@ -289,6 +290,7 @@ static void close_fw_handle(int sig)
> * arg[2]:
> *
> * @usrptr: usrptr
> + * @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);
> }
>
> @@ -362,6 +370,10 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci,
> 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);
anything else missing here?
apparently the patch still failed badly and I lost my machine now...
will check again tomorrow with some debugs.
> +
> if (check_rpm && runtime_usage_available(device.pci_xe))
> igt_assert(igt_pm_get_runtime_usage(device.pci_xe) > rpm_usage);
>
> @@ -617,6 +629,7 @@ igt_main
> unsigned int flags;
> } vm_op[] = {
> { "usrptr", USERPTR },
> + { "prefetch", PREFETCH },
> { NULL },
> };
>
> --
> 2.39.1
>
More information about the igt-dev
mailing list