[igt-dev] [PATCH i-g-t 12/23] i915/perf: Skip tests that use rendercopy

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue Sep 6 13:28:50 UTC 2022


On 23/08/2022 21:30, Umesh Nerlige Ramappa wrote:
> Running tests that require rendercopy sometimes leaves the DUT in an
> unsusable state. Further tests fail to run and DUT requires reboot.
> Since it affects CI efficiency, skip tests is rendercopy is missing.
>
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>

Kind of awkward that igt_get_render_copyfunc() returns something when it 
doesn't seem to be have an engine able to run the copy function...


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

> ---
>   tests/i915/perf.c | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index ba8c3792..85f3c5de 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -41,6 +41,7 @@
>   #include "i915/gem.h"
>   #include "i915/perf.h"
>   #include "igt.h"
> +#include "igt_perf.h"
>   #include "igt_sysfs.h"
>   #include "drm.h"
>   
> @@ -5025,6 +5026,19 @@ static int i915_perf_revision(int fd)
>   	return value;
>   }
>   
> +static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
> +{
> +	int fd;
> +
> +	fd = perf_i915_open(i915, I915_PMU_ENGINE_BUSY(class, instance));
> +	if (fd >= 0) {
> +		close(fd);
> +		return true;
> +	}
> +
> +	return false;
> +}
> +
>   igt_main
>   {
>   	igt_fixture {
> @@ -5069,7 +5083,8 @@ igt_main
>   
>   		gt_max_freq_mhz = sysfs_read(RPS_RP0_FREQ_MHZ);
>   
> -		render_copy = igt_get_render_copyfunc(devid);
> +		if (has_class_instance(drm_fd, I915_ENGINE_CLASS_RENDER, 0))
> +			render_copy = igt_get_render_copyfunc(devid);
>   	}
>   
>   	igt_subtest("non-system-wide-paranoid")




More information about the igt-dev mailing list