[Intel-gfx] [PATCH igt 2/2] lib/core: Don't leak dummyloads between subtests

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Dec 12 15:57:56 UTC 2017


On 12/12/2017 12:21, Chris Wilson wrote:
> If a test fails or skips early, it may not clean up after itself. In
> lieu of having a framework for test deconstructors, hook
> igt_terminate_spin_batches() into exit_subtest() itself so that we don't
> allow a recursive batch from an earlier test to leak into the next and
> cause an unexpected GPU hang.
> 
> Similarly, we also want to terminate the dummyload as the first step in
> our atexit handlers (currently it is at the start of the last step) as
> some atexit handlers may be unwittingly exposed to dummyloads and so
> cause another wait on GPU hang.
> 
> We trust that the core already distinguishes correctly between the
> principal test process and its children.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
>   lib/igt_core.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index 777687b5f..558a538d3 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -63,6 +63,7 @@
>   #include "intel_chipset.h"
>   #include "intel_io.h"
>   #include "igt_debugfs.h"
> +#include "igt_dummyload.h"
>   #include "version.h"
>   #include "config.h"
>   
> @@ -994,6 +995,8 @@ static void exit_subtest(const char *result)
>   		 (!__igt_plain_output) ? "\x1b[0m" : "");
>   	fflush(stdout);
>   
> +	igt_terminate_spin_batches();
> +
>   	in_subtest = NULL;
>   	siglongjmp(igt_subtest_jmpbuf, 1);
>   }
> @@ -1817,6 +1820,8 @@ static void call_exit_handlers(int sig)
>   {
>   	int i;
>   
> +	igt_terminate_spin_batches();
> +
>   	if (!exit_handler_count) {
>   		return;
>   	}
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list