Re: [PATCH 5/6] drm/i915/gt: Discard stale context state from across idling

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

 



Quoting Mika Kuoppala (2019-12-30 16:30:21)
> Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes:
> 
> > Before we idle, on parking, we switch to the kernel context such that we
> > have a scratch context loaded while the GPU idle, protecting any
> > precious user state. Be paranoid and assume that the idle state may have
> > been trashed, and reset the kernel_context image after idling.
> >
> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> > Cc: Imre Deak <imre.deak@xxxxxxxxx>
> > ---
> >  drivers/gpu/drm/i915/gt/intel_engine_pm.c | 6 ++++++
> >  drivers/gpu/drm/i915/gt/intel_gt_pm.c     | 8 --------
> >  drivers/gpu/drm/i915/gt/mock_engine.c     | 5 +++++
> >  3 files changed, 11 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> > index cd82f0baef49..1b9f73948f22 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> > @@ -20,6 +20,7 @@ static int __engine_unpark(struct intel_wakeref *wf)
> >  {
> >       struct intel_engine_cs *engine =
> >               container_of(wf, typeof(*engine), wakeref);
> > +     struct intel_context *ce;
> >       void *map;
> >  
> >       ENGINE_TRACE(engine, "\n");
> > @@ -34,6 +35,11 @@ static int __engine_unpark(struct intel_wakeref *wf)
> >       if (!IS_ERR_OR_NULL(map))
> >               engine->pinned_default_state = map;
> >  
> > +     /* Discard stale context state from across idling */
> > +     ce = engine->kernel_context;
> > +     if (ce)
> > +             ce->ops->reset(ce);
> > +
> 
> Expect the worst, sure.
> Checksum would get us datapoints tho.

Inject yet-another request to the kernel_context on parking to force a
context switch [to itself] and so ensure the image is saved to HW. Wait
for parking, compute the CRC. Then on unpark compute the CRC again...

The design is all based around that we don't trust the HW and try to
avoid caring about what's in the scratch kernel_context, so other than
validating HW... Not a terrible idea, but we can probably cook up
something more targeted if we thought about it.
-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