[PATCH i-g-t 1/2] tests/intel/xe_drm_fdinfo: Group utilization tests and skip when no utilization data
Lucas De Marchi
lucas.demarchi at intel.com
Wed Mar 5 17:08:57 UTC 2025
On Tue, Mar 04, 2025 at 07:56:39PM +0100, Marcin Bernatowicz wrote:
>Wrap all utilization-related subtests in an igt_subtest_group and add
>a fixture that ensures utilization data is available before running
>them.
>
>Link: https://lore.kernel.org/r/20250205191644.2550879-1-marcin.bernatowicz@linux.intel.com
>
>Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
>Cc: Jakub Kolakowski <jakub1.kolakowski at intel.com>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Cc: Lukasz Laguna <lukasz.laguna at intel.com>
>Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
>---
> tests/intel/xe_drm_fdinfo.c | 122 ++++++++++++++++++++----------------
> 1 file changed, 67 insertions(+), 55 deletions(-)
>
>diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
>index 7330b4330..d18fe10d8 100644
>--- a/tests/intel/xe_drm_fdinfo.c
>+++ b/tests/intel/xe_drm_fdinfo.c
>@@ -735,10 +735,6 @@ igt_main
> igt_subtest("basic-mem")
> basic_memory(xe);
>
>- igt_describe("Check if basic fdinfo content is present for engine utilization");
>- igt_subtest("basic-utilization")
>- basic_engine_utilization(xe);
>-
> igt_describe("Create and compare total and resident memory consumption by client");
> igt_subtest("mem-total-resident")
> mem_total_resident(xe);
>@@ -751,57 +747,73 @@ igt_main
> igt_subtest("mem-active")
> mem_active(xe, xe_engine(xe, 0));
>
>- igt_subtest("utilization-single-idle")
>- xe_for_each_engine(xe, hwe)
>- utilization_single(xe, hwe, 0);
>-
>- igt_subtest("utilization-single-full-load")
>- xe_for_each_engine(xe, hwe)
>- utilization_single(xe, hwe, TEST_BUSY | TEST_TRAILING_IDLE);
>-
>- igt_subtest("utilization-single-full-load-isolation")
>- xe_for_each_engine(xe, hwe)
>- utilization_single(xe, hwe, TEST_BUSY | TEST_TRAILING_IDLE | TEST_ISOLATION);
>-
>- igt_subtest("utilization-single-full-load-destroy-queue")
>- xe_for_each_engine(xe, hwe)
>- utilization_single_destroy_queue(xe, hwe);
>-
>- igt_subtest("utilization-others-idle")
>- xe_for_each_engine(xe, hwe)
>- utilization_others_idle(xe, hwe);
>-
>- igt_subtest("utilization-others-full-load")
>- xe_for_each_engine(xe, hwe)
>- utilization_others_full_load(xe, hwe);
>-
>- igt_subtest("utilization-all-full-load")
>- utilization_all_full_load(xe);
>-
>-
>- for (const struct section *s = sections; s->name; s++) {
>- igt_subtest_f("%s-utilization-single-idle", s->name)
>- xe_for_each_gt(xe, gt)
>- xe_for_each_engine_class(class)
>- utilization_multi(xe, gt, class, s->flags);
>-
>- igt_subtest_f("%s-utilization-single-full-load", s->name)
>- xe_for_each_gt(xe, gt)
>- xe_for_each_engine_class(class)
>- utilization_multi(xe, gt, class,
>- s->flags |
>- TEST_BUSY |
>- TEST_TRAILING_IDLE);
>-
>- igt_subtest_f("%s-utilization-single-full-load-isolation",
>- s->name)
>- xe_for_each_gt(xe, gt)
>- xe_for_each_engine_class(class)
>- utilization_multi(xe, gt, class,
>- s->flags |
>- TEST_BUSY |
>- TEST_TRAILING_IDLE |
>- TEST_ISOLATION);
>+ igt_subtest_group {
>+ igt_fixture {
>+ struct drm_client_fdinfo info = { };
>+
>+ igt_require(igt_parse_drm_fdinfo(xe, &info, engine_map,
>+ ARRAY_SIZE(engine_map),
>+ NULL, 0));
>+ igt_require(info.num_engines);
humn... is this fixture exectuded in addition to the outer fixture
for each each subtest? Otherwise it won't have the fd open and thus no
client.
Lucas De Marchi
More information about the igt-dev
mailing list