[igt-dev] [PATCH i-g-t 68/77] igt/dummyload: Require an intel_ctx_t for POLL_RUN and !ALL_ENGINES
Jason Ekstrand
jason at jlekstrand.net
Wed Jun 16 17:30:42 UTC 2021
On Tue, Jun 15, 2021 at 9:56 PM Dixit, Ashutosh
<ashutosh.dixit at intel.com> wrote:
>
> On Tue, 15 Jun 2021 19:49:14 -0700, Dixit, Ashutosh wrote:
> >
> > I have another related question/observation. If what I am saying above is
> > indeed true, is the "ctx_id" field in "struct igt_spin_factory" ever
> > really used? If not we should delete it from the struct and we can get rid
> > of these asserts.
> >
> > This is because I am saying above that we have an igt_assert(opts->ctx)
> > above in igt_spin_factory() when "opts->engine != ALL_ENGINES" and then we
> > have another igt_assert(opts->ctx) in emit_recursive_batch() when
> > "opts->engine == ALL_ENGINES". So it appears we must always have
> > intel_ctx_t and can never use the "ctx_id" field in "struct
> > igt_spin_factory" so it should be removed.
> >
> > So appears the spinner interface will always need a intel_ctx_t (meaning
> > more code changes).
>
> Sorry for harping on this again. Note that even with the code in this
> series test like igt at gem_ctx_exec@norecovery (which have not been modified)
> should now be broken. The code in this series is:
Yup. That was a miss. Not sure why CI didn't catch it. The test
runs reliably on my SKL box. That test will be fixed in the next
revision.
--Jason
> if ((opts->flags & IGT_SPIN_POLL_RUN) && opts->engine != ALL_ENGINES) {
> unsigned int class;
>
> igt_assert(opts->ctx);
> class = intel_ctx_engine_class(opts->ctx, opts->engine);
> igt_require(gem_class_can_store_dword(fd, class));
> }
>
> igt at gem_ctx_exec@norecovery uses IGT_SPIN_POLL_RUN, does not use
> ALL_ENGINES and uses ctx_id instead of opts->ctx, so the assert above will
> fire.
More information about the igt-dev
mailing list