[PATCH i-g-t v2 2/9] tests/intel/xe_vm: Update invalid flag subtest

Teres Alexis, Alan Previn alan.previn.teres.alexis at intel.com
Thu Jan 16 21:55:26 UTC 2025


Reviewed-by: Alan Previn <alan.previn.teres.alexis at intel.com>

On Wed, 2025-01-15 at 16:19 -0800, Daniele Ceraolo Spurio wrote:
> PXP introduced a new valid flag, so we need to add it to the test and
> shift the first invalid bit left by one.
> 
> v2: only test the new flag if the kernel supports it.
> 
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> ---
>  tests/intel/xe_vm.c | 25 ++++++++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/intel/xe_vm.c b/tests/intel/xe_vm.c
> index 6ee3f4634..40e92d805 100644
> --- a/tests/intel/xe_vm.c
> +++ b/tests/intel/xe_vm.c
> @@ -2173,6 +2173,22 @@ test_mmap_style_bind(int fd, struct drm_xe_engine_class_instance *eci,
>         xe_vm_destroy(fd, vm);
>  }
>  
> +static bool pxp_interface_supported(int fd)
> +{
> +       struct drm_xe_device_query query = {
> +               .extensions = 0,
> +               .query = DRM_XE_DEVICE_QUERY_PXP_STATUS,
> +               .size = 0,
> +               .data = 0,
> +       };
> +       int ret = 0;
> +
> +       if (igt_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query))
> +               ret = -errno;
> +
> +       return ret != -EINVAL;
> +}
> +
>  /**
>   * SUBTEST: bind-flag-invalid
>   * Description:
> @@ -2221,6 +2237,13 @@ static void bind_flag_invalid(int fd)
>         igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
>         syncobj_reset(fd, &sync[0].handle, 1);
>  
> +       if (pxp_interface_supported(fd)) {
> +               bind.bind.flags = DRM_XE_VM_BIND_FLAG_CHECK_PXP;
> +               igt_ioctl(fd, DRM_IOCTL_XE_VM_BIND, &bind);
> +               igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> +               syncobj_reset(fd, &sync[0].handle, 1);
> +       }
> +
>         bind.bind.flags = DRM_XE_VM_BIND_FLAG_NULL;
>         bind.bind.obj = 0;
>         igt_ioctl(fd, DRM_IOCTL_XE_VM_BIND, &bind);
> @@ -2234,7 +2257,7 @@ static void bind_flag_invalid(int fd)
>         syncobj_reset(fd, &sync[0].handle, 1);
>  
>         /* Using invalid flags should not work */
> -       bind.bind.flags = 1 << 4;
> +       bind.bind.flags = 1 << 5;
>         igt_ioctl(fd, DRM_IOCTL_XE_VM_BIND, &bind);
>         do_ioctl_err(fd, DRM_IOCTL_XE_VM_BIND, &bind, EINVAL);
>  



More information about the igt-dev mailing list