Message ID | 20190121222117.23305-10-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/34] drm/i915/execlists: Mark up priority boost on preemption | expand |
On 1/21/2019 14:20, Chris Wilson wrote: > The guc (and huc) currently inexcruitably depend on struct_mutex for > device reinitialisation from inside the reset, and indeed taking any > mutex here is verboten (as we must be able to reset from underneath any > of our mutexes). That makes recovering the guc unviable without, for > example, reserving contiguous vma space and pages for it to use. > > The plan to re-enable global reset for the GuC centres around reusing the > WOPM reserved space at the top of the aperture (that we know we can > populate a contiguous range large enough to dma xfer the fw image). > > In the meantime, hopefully no one even notices as the device-reset is > only used as a backup to the per-engine resets for handling GPU hangs. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > Acked-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> > --- > drivers/gpu/drm/i915/i915_reset.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c > index b9d0ea70361c..2961c21d9420 100644 > --- a/drivers/gpu/drm/i915/i915_reset.c > +++ b/drivers/gpu/drm/i915/i915_reset.c > @@ -590,6 +590,9 @@ int intel_gpu_reset(struct drm_i915_private *i915, unsigned int engine_mask) > > bool intel_has_gpu_reset(struct drm_i915_private *i915) > { > + if (USES_GUC(i915)) > + return false; > + > return intel_get_gpu_reset(i915); > } > Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c index b9d0ea70361c..2961c21d9420 100644 --- a/drivers/gpu/drm/i915/i915_reset.c +++ b/drivers/gpu/drm/i915/i915_reset.c @@ -590,6 +590,9 @@ int intel_gpu_reset(struct drm_i915_private *i915, unsigned int engine_mask) bool intel_has_gpu_reset(struct drm_i915_private *i915) { + if (USES_GUC(i915)) + return false; + return intel_get_gpu_reset(i915); }