On Thu, Jun 18, 2015 at 11:42:08AM +0100, Chris Wilson wrote: > If the user disables the GPU reset using the i915.reset parameter and > one occurs, report that we failed to reset the GPU. If we return early, > as we currently do, then we leave all state intact (with a hung GPU) > and clients block forever waiting for their requests to complete. > > Testcase: igt/gem_eio > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_dma.c | 1 - > drivers/gpu/drm/i915/i915_drv.c | 3 --- > drivers/gpu/drm/i915/intel_uncore.c | 3 +++ > 3 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > index 88795d2f1819..c5349fa3fcce 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -165,7 +165,6 @@ static int i915_getparam(struct drm_device *dev, void *data, > break; > case I915_PARAM_HAS_GPU_RESET: > value = i915.enable_hangcheck && > - i915.reset && > intel_has_gpu_reset(dev); > break; > default: > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 78ef0bb53c36..25ffe8afe744 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -863,9 +863,6 @@ int i915_reset(struct drm_device *dev) > bool simulated; > int ret; > > - if (!i915.reset) > - return 0; > - > intel_reset_gt_powersave(dev); > > mutex_lock(&dev->struct_mutex); > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index 4a86cf007aa0..f8e75def1a1d 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -1457,6 +1457,9 @@ static int gen6_do_reset(struct drm_device *dev) > > static int (*intel_get_gpu_reset(struct drm_device *dev))(struct drm_device *) > { > + if (!i915.reset) > + return NULL; Maybe a special reset function which always returns -EIO and prints something to illuminate the situation to dmesg? Otherwise even more wtf material in bugzilla ... -Daniel > + > if (INTEL_INFO(dev)->gen >= 6) > return gen6_do_reset; > else if (IS_GEN5(dev)) > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx