[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