[PATCH i-g-t 1/2] tests/intel/xe_drm_fdinfo: Group utilization tests and skip when no utilization data
Kamil Konieczny
kamil.konieczny at linux.intel.com
Wed Mar 5 12:15:14 UTC 2025
Hi Marcin,
On 2025-03-04 at 19:56:39 +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_group {
> + igt_fixture {
> + struct drm_client_fdinfo info = { };
> +
> + igt_require(igt_parse_drm_fdinfo(xe, &info, engine_map,
> + ARRAY_SIZE(engine_map),
> + NULL, 0));
Problem with require placed here is that it will trigger also
for all other test outside of group. That will clobber output.
> + igt_require(info.num_engines);
Both these should be placed in each subtest wrapped in function
(see below) but imho this looks like a global requires at begin
of a test? Or am I missing something?
> + }
> +
Create function like:
void require_utilization(int xe, ... engine_map)
{
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);
}
and use it in each utulization subtest like:
igt_describe("Check if basic fdinfo content is present for engine utilization");
igt_subtest("basic-utilization") {
require_utilization(xe);
basic_engine_utilization(xe);
}
Regards,
Kamil
> + igt_describe("Check if basic fdinfo content is present for engine utilization");
> + igt_subtest("basic-utilization")
> + basic_engine_utilization(xe);
> +
[...]
More information about the igt-dev
mailing list