[igt-dev] [PATCH i-g-t 0/3] tests/gem_exec_alignment.c: Update subtests

Chris Wilson chris at chris-wilson.co.uk
Thu Mar 12 10:06:20 UTC 2020


Quoting Dominik Grzegorzek (2020-03-12 09:09:30)
> Changes modify many subtest, and implement priority inversion test
> case. Splited into three patches due to code sections shared between 
> pi and many subtest. "PATCH i-g-t 1/3 tests/gem_exec_alignment.c: Timeout
> alarm wrappers" has no sense without at least one of next patches. 
> 
> Dominik Grzegorzek (3):
>   tests/gem_exec_alignment.c: Timeout alarm wrappers
>   tests/gem_exec_alignment.c: Update subtest many

This still doesn't do quite what you would expect as it continues to
eat the signal anyway. In short it is no better than doing,

struct timespec tv = {}

for (alignment = 4096; alignment < gtt_size && igt_seconds_elapsed(&tv) < 5; alignment <<= 1)

>   tests/gem_exec_alignment.c: Add priority inversion test

Here, you don't want to try and fill the whole gtt and risk running for
several hundred seconds, but instead tune the fragmentation so that you
can reasonably expect it to take over 5s. i.e. use the slow
fragmentation loop from -many to consume 5s, and use the next alignment
up (on the already fragmented gtt) for the low-priority client.

Then don't use the SIGARLM for the high priority client, just measure
the elapsed time. Also fix up the igt_debug so that the L/H labels refer
to the right clients.
-Chris


More information about the igt-dev mailing list