[igt-dev] [PATCH i-g-t 68/77] igt/dummyload: Require an intel_ctx_t for POLL_RUN and !ALL_ENGINES

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Jun 16 02:56:23 UTC 2021


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:

        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