[igt-dev] [Intel-gfx] [PATCH i-g-t 1/2] i915: Inject invalid CS into hanging spinners

Chris Wilson chris at chris-wilson.co.uk
Tue Jan 28 10:05:53 UTC 2020


Quoting Mika Kuoppala (2020-01-28 09:59:23)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> > Some spinners are used with the intent of never ending and being
> > declared hung by the kernel. In some cases, these are being used to
> > simulate invalid payloads and so we can use an invalid command to
> > trigger a GPU hang. (Other cases, they are simulating infinite workloads
> > that truly never end, but we still need to be able to curtail to provide
> > multi-tasking). This patch adds IGT_SPIN_INVALID_CS to request the
> > injection of 0xdeadbeef into the command stream that should trigger a
> > GPU hang.
> 
> Ok so you want to differentiate between a never ending
> and invalid payload as a separate. And also quicken the
> resolve.
> 
> >
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> >  lib/igt_dummyload.c              |  2 ++
> >  lib/igt_dummyload.h              |  1 +
> >  tests/i915/gem_busy.c            |  3 ++-
> >  tests/i915/gem_ctx_persistence.c | 39 +++++++++++++++++++++++++++++++-
> >  tests/i915/gem_eio.c             |  1 +
> >  tests/i915/gem_exec_balancer.c   |  4 +++-
> >  tests/i915/gem_exec_fence.c      |  3 ++-
> >  7 files changed, 49 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> > index b7f4caca3..041122af9 100644
> > --- a/lib/igt_dummyload.c
> > +++ b/lib/igt_dummyload.c
> > @@ -189,6 +189,8 @@ emit_recursive_batch(igt_spin_t *spin,
> >       /* Allow ourselves to be preempted */
> >       if (!(opts->flags & IGT_SPIN_NO_PREEMPTION))
> >               *cs++ = MI_ARB_CHK;
> > +     if (opts->flags & IGT_SPIN_INVALID_CS)
> > +             *cs++ = 0xdeadbeef;
> 
> Some cmd streamers might just ignore this but lets
> see how it goes.

See the selftest in
https://patchwork.freedesktop.org/patch/350890/?series=72639&rev=1
-Chris


More information about the igt-dev mailing list