Re: [PATCH i-g-t] i915/gem_ctx_engine: Prevent preemption

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Tvrtko Ursulin (2019-06-19 07:32:05)
> 
> On 18/06/2019 21:21, Chris Wilson wrote:
> > In order to pin the engine as busy, we have to prevent the kernel from
> > executing other independent work ahead of our plug, so tell the spinner
> > to not allow preemption.
> > 
> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> > ---
> >   tests/i915/gem_ctx_engines.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
> > index 3ecade417..d47cbdd7c 100644
> > --- a/tests/i915/gem_ctx_engines.c
> > +++ b/tests/i915/gem_ctx_engines.c
> > @@ -283,7 +283,8 @@ static void execute_one(int i915)
> >   
> >                       spin = igt_spin_new(i915,
> >                                           .ctx = param.ctx_id,
> > -                                         .engine = 0);
> > +                                         .engine = 0,
> > +                                         .flags = IGT_SPIN_NO_PREEMPTION);
> >   
> >                       igt_debug("Testing with map of %d engines\n", i + 1);
> >                       memset(&engines.engines, -1, sizeof(engines.engines));
> > 
> 
> The no-op batch preempts the spinner? How does that affect the busy 
> check on the no-op batch?

We are checking the second batch in the pipeline, expecting it to be
blocked by the already executing spinner on the engine of interest.
There is no dependency between the two batches, just order of
submission, hence the kernel ends up executing the second no-op batch
after the first batch's timeslice expired.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux