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