[PATCH i-g-t v2 2/9] tests/intel/xe_vm: Update invalid flag subtest
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Thu Jan 16 00:19:33 UTC 2025
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);
--
2.43.0
More information about the igt-dev
mailing list