Re: [PATCH v6 04/20] drm/i915/tdr: Modify error handler for per engine hang recovery

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

 



On Tue, Apr 18, 2017 at 03:01:02PM -0700, Michel Thierry wrote:
> 
> 
> On 18/04/17 14:40, Chris Wilson wrote:
> >>+	/* try engine reset first, and continue if fails; look mom, no mutex! */
> >>+	if (intel_has_reset_engine(dev_priv) && !(engine_mask & (engine_mask - 1))) {
> >
> >if (has_reset_engine() && is_power_of_2(engine_mask)) {
> >	engine = dev_priv->engine[ilog2(engine_mask)];
> >
> >Not worth iterating over the engine_mask?
> >
> >for_each_bit() {
> >	if (i915_reset_engine(engine) == 0)
> >		dev_prv->gpu_error.reset_engine_mask &= ~intel_engine_flag()
> >if (reset_engine_mask)
> >	DRM_WARN("per-engine reset failed, promoting to full gpu_reset\n");
> >
> 
> Time-wise, I'm not so sure about the benefits of 2 reset_engines vs
> full gpu reset. But it can be done... and thanks for the ilog2 tip.

Hmm, looping isn't quite right. You would need to pass down the
engine_mask so all engines were paused (in prepare), then reset, then
restarted atomically. Will think a bit more about that.

The immediate benefit is avoiding the struct_mutex + display futzing
more often.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux