On Wed, Apr 11, 2018 at 11:13:56AM +0100, Chris Wilson wrote: > In investigating the issue with having to force preemption within the > executing ELSP[], we want to trigger preemption between all elements of > that array. To that end, we issue a series of requests with different > priorities to fill the in-flight ELSP[] and then demand preemption into > the middle of that series. One can think of even more complicated > reordering requirements of ELSP[], trying to switch between every > possible combination of permutations. Rather than check all 2 billion > combinations, be content with a few. > > v2: Add a different pattern for queued requests. Not only do we need to > inject a request into the middle of a single context with a queue of > different priority contexts, but we also want a queue of different > contexts, as they have different patterns of ELSP[] behaviour. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > Cc: Michał Winiarski <michal.winiarski@xxxxxxxxx> > --- > tests/gem_exec_schedule.c | 188 ++++++++++++++++++++++++++++++++++---- > 1 file changed, 169 insertions(+), 19 deletions(-) > > diff --git a/tests/gem_exec_schedule.c b/tests/gem_exec_schedule.c > index d2f040ab..6ff15b6e 100644 > --- a/tests/gem_exec_schedule.c > +++ b/tests/gem_exec_schedule.c [snip] > @@ -981,12 +1117,26 @@ igt_main > igt_subtest_f("preempt-contexts-%s", e->name) > preempt(fd, e->exec_id | e->flags, NEW_CTX); > > - igt_subtest_f("preempt-other-%s", e->name) > - preempt_other(fd, e->exec_id | e->flags); > - > igt_subtest_f("preempt-self-%s", e->name) > preempt_self(fd, e->exec_id | e->flags); > > + igt_subtest_f("preempt-other-%s", e->name) > + preempt_other(fd, e->exec_id | e->flags, 0); > + > + igt_subtest_f("preempt-other-chain-%s", e->name) > + preempt_other(fd, e->exec_id | e->flags, CHAIN); > + > + igt_subtest_f("preempt-queue-%s", e->name) > + preempt_queue(fd, e->exec_id | e->flags, 0); > + > + igt_subtest_f("preempt-queue-chain-%s", e->name) > + preempt_queue(fd, e->exec_id | e->flags, CHAIN); > + igt_subtest_f("preempt-contexts-%s", e->name) > + preempt_queue(fd, e->exec_id | e->flags, CONTEXTS); With preempt-queue-contexts. Reviewed-by: Michał Winiarski <michal.winiarski@xxxxxxxxx> -Michał > + > + igt_subtest_f("preempt-contexts-chain-%s", e->name) > + preempt_queue(fd, e->exec_id | e->flags, CONTEXTS | CHAIN); > + > igt_subtest_group { > igt_hang_t hang; > > -- > 2.17.0 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx