[i-g-t v6 3/4] tests/intel/xe_vm: Exclude invalid_flags tests from LNL and BMG
Dixit, Ashutosh
ashutosh.dixit at intel.com
Tue Mar 11 00:33:43 UTC 2025
On Mon, 24 Feb 2025 09:40:09 -0800, Oak Zeng wrote:
>
> Due to a fix of out of bound prefetch issue, we now allow scratch
> page coexist with fault mode on LNL and BMG, thus exclude those
> tests on such HW.
Instead of making all these changes in this patch, isn't it cleaner to
include the platform check for DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE in
invalid_flag() itself?
Also is it just LNL and BMG, or other future platforms too? In that case
instead of using IS_LUNARLAKE() kind of macros, use intel_graphics_ver()
checks, so we don't need to keep adding a new patch/check for each
platform.
>
> Signed-off-by: Oak Zeng <oak.zeng at intel.com>
> ---
> tests/intel/xe_vm.c | 47 ++++++++++++++++++++++++++++++---------------
> 1 file changed, 32 insertions(+), 15 deletions(-)
>
> diff --git a/tests/intel/xe_vm.c b/tests/intel/xe_vm.c
> index 0730dd3d3..834e0afd7 100644
> --- a/tests/intel/xe_vm.c
> +++ b/tests/intel/xe_vm.c
> @@ -2349,6 +2349,7 @@ igt_main
> struct drm_xe_engine_class_instance *hwe, *hwe_non_copy = NULL;
> uint64_t bind_size;
> int fd;
> + uint16_t dev_id;
> const struct section {
> const char *name;
> int bo_n_pages;
> @@ -2441,23 +2442,28 @@ igt_main
> { NULL },
> };
>
> - const struct vm_create_section {
> - const char *name;
> - __u32 flags;
> - } xe_vm_create_invalid_flags[] = {
> - { "xe_vm_create_fault", DRM_XE_VM_CREATE_FLAG_FAULT_MODE },
> - { "xe_vm_create_scratch_fault",
> - DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE |
> - DRM_XE_VM_CREATE_FLAG_FAULT_MODE },
> - { "xe_vm_create_scratch_fault_lr",
> - ~(DRM_XE_VM_CREATE_FLAG_LR_MODE |
> - DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE |
> - DRM_XE_VM_CREATE_FLAG_FAULT_MODE) },
> - { }
> - };
> + const struct vm_create_section {
> + const char *name;
> + __u32 flags;
> + } xe_vm_create_invalid_flags1[] = {
> + { "xe_vm_create_fault", DRM_XE_VM_CREATE_FLAG_FAULT_MODE },
> + { }
> + };
> +
> + const struct vm_create_section xe_vm_create_invalid_flags2[] = {
> + { "xe_vm_create_scratch_fault",
> + DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE |
> + DRM_XE_VM_CREATE_FLAG_FAULT_MODE },
> + { "xe_vm_create_scratch_fault_lr",
> + ~(DRM_XE_VM_CREATE_FLAG_LR_MODE |
> + DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE |
> + DRM_XE_VM_CREATE_FLAG_FAULT_MODE) },
> + { }
> + };
>
> igt_fixture {
> fd = drm_open_driver(DRIVER_XE);
> + dev_id = intel_get_drm_devid(fd);
>
> xe_for_each_engine(fd, hwe)
> if (hwe->engine_class != DRM_XE_ENGINE_CLASS_COPY) {
> @@ -2715,11 +2721,22 @@ igt_main
> }
> }
>
> - for (const struct vm_create_section *s = xe_vm_create_invalid_flags; s->name; s++) {
> + for (const struct vm_create_section *s = xe_vm_create_invalid_flags1;
> + s->name; s++) {
> igt_subtest_f("invalid-flag-%s", s->name)
> invalid_flag(fd, s->flags);
> }
>
> + for (const struct vm_create_section *s = xe_vm_create_invalid_flags2;
> + s->name; s++) {
> + igt_subtest_f("invalid-flag-%s", s->name) {
> + igt_skip_on_f(IS_LUNARLAKE(dev_id) ||
> + IS_BATTLEMAGE(dev_id),
> + "Skip test on this platform\n");
> + invalid_flag(fd, s->flags);
> + }
> + }
> +
> igt_subtest("invalid-extensions")
> invalid_extensions(fd);
>
> --
> 2.26.3
>
More information about the igt-dev
mailing list