[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