Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> writes: > From: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > This will allow us to set per-file, or even per-context, periods in the > future. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 5 +++++ > drivers/gpu/drm/i915/i915_gem.c | 3 ++- > drivers/gpu/drm/i915/i915_gem_context.c | 2 ++ > 3 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 921e4c5..3749415 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -678,6 +678,11 @@ struct i915_ctx_hang_stats { > /* Time when this context was last blamed for a GPU reset */ > unsigned long guilty_ts; > > + /* If the contexts causes a second GPU hang within this time, > + * it is permanently banned from submitting any more work. > + */ > + unsigned long ban_period_seconds; > + > /* This context is banned to submit more work */ > bool banned; > }; > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 2b6ecfd..67e9100 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2547,7 +2547,8 @@ static bool i915_context_is_banned(struct drm_i915_private *dev_priv, > if (ctx->hang_stats.banned) > return true; > > - if (elapsed <= DRM_I915_CTX_BAN_PERIOD) { > + if (ctx->hang_stats.ban_period_seconds && > + elapsed <= ctx->hang_stats.ban_period_seconds) { > if (!i915_gem_context_is_default(ctx)) { > DRM_DEBUG("context hanging too fast, banning!\n"); > return true; > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index 9b23fb1..bf9778e 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -222,6 +222,8 @@ __create_hw_context(struct drm_device *dev, > * is no remap info, it will be a NOP. */ > ctx->remap_slice = (1 << NUM_L3_SLICES(dev)) - 1; > > + ctx->hang_stats.ban_period_seconds = DRM_I915_CTX_BAN_PERIOD; > + > return ctx; > > err_out: > -- > 1.9.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx