[igt-dev] [PATCH i-g-t] i915/gem_ctx_persistence: Race context closure with replace-engines

Chris Wilson chris at chris-wilson.co.uk
Thu Feb 13 09:51:38 UTC 2020


Quoting Tvrtko Ursulin (2020-02-13 09:07:59)
> 
> On 11/02/2020 19:22, Chris Wilson wrote:
> > +     igt_until_timeout(5) {
> > +             igt_spin_t *spin;
> > +             uint32_t ctx;
> > +
> > +             ctx = gem_context_clone_with_engines(i915, 0);
> > +             gem_context_set_persistence(i915, ctx, true);
> > +
> > +             spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
> > +             for (int i = 0; i < ncpus; i++)
> > +                     write(t[i].pipe[1], &ctx, sizeof(ctx));
> 
> It's early so I hope I am not too confused, but drm client in the forked 
> process is a different one. So I think it needs to use threads to be 
> able to share.

It using the same fd, so the children have control over the parents ctx
(and shares the ctx id space via the fd)
-Chris


More information about the igt-dev mailing list