[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