[Intel-gfx] [PATCH 1/4] drm/i915: Do a synchronous switch-to-kernel-context on idling
Chris Wilson
chris at chris-wilson.co.uk
Fri Mar 8 12:46:31 UTC 2019
Quoting Chris Wilson (2019-03-08 12:44:16)
> Quoting Chris Wilson (2019-03-08 09:36:54)
> > +static bool switch_to_kernel_context_sync(struct drm_i915_private *i915)
> > +{
> > + bool result = true;
> > +
> > + /*
> > + * Even if we fail to switch, give whatever is running a small chance
> > + * to save itself before we report the failure. Yes, this may be a
> > + * false positive due to e.g. ENOMEM, caveat emptor!
> > + */
> > + if (i915_gem_switch_to_kernel_context(i915))
> > + result = false;
> > +
> > + if (i915_gem_wait_for_idle(i915,
> > + I915_WAIT_LOCKED |
> > + I915_WAIT_FOR_IDLE_BOOST,
> > + I915_GEM_IDLE_TIMEOUT))
> > + result = false;
> > +
> > + if (result) {
> > + assert_kernel_context_is_current(i915);
> > + } else {
>
> if (intel_has_gpu_reset()) {
>
> > + /* Forcibly cancel outstanding work and leave the gpu quiet. */
> > + dev_err(i915->drm.dev,
> > + "Failed to idle engines, declaring wedged!\n");
> > + GEM_TRACE_DUMP();
>
> }
>
> To prevent it spewing just for gem_eio???
>
> I think the error message is important, but gem_eio is a bit of an arm
> twister.
On the other hand, gem_eio does show that this can be user invoked so is
anything above a dev_notice() required?
-Chris
More information about the Intel-gfx
mailing list