Quoting Mika Kuoppala (2018-05-16 15:24:56) > Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > > > When setting up reset, we may need to recursively prepare an engine. In > > which case we should only synchronously flush the tasklets on the outer > > most call, the inner calls will then be inside an atomic section where > > the tasklet will never be run (and so the sync will never complete). > > > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/i915/i915_gem.c | 2 +- > > drivers/gpu/drm/i915/i915_gem.h | 7 +++++++ > > 2 files changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > > index 0dc369a9ec4d..aab1f5e77ae9 100644 > > --- a/drivers/gpu/drm/i915/i915_gem.c > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > @@ -3036,7 +3036,7 @@ i915_gem_reset_prepare_engine(struct intel_engine_cs *engine) > > * Turning off the execlists->tasklet until the reset is over > > * prevents the race. > > */ > > - tasklet_disable(&engine->execlists.tasklet); > > + __tasklet_disable_once(&engine->execlists.tasklet); > > It is debatable that could the naming be improved as > the 'once' is tied to the disable now. > > __tasklet_disable_wait_[once|first]. wait_once is a good suggestion tasklet_disable tasklet_disable_nosync tasklet_disable_sync_once ? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx