Quoting Chris Wilson (2018-03-16 20:53:01) > +static void preempt_reset(struct work_struct *work) > +{ > + struct intel_engine_cs *engine = > + container_of(work, typeof(*engine), execlists.preempt_reset); > + So thinking about the races you had in the reset, you need tasklet_kill() tasklet_disable(); > + if (execlists_is_active(&engine->execlists, EXECLISTS_ACTIVE_PREEMPT)) > + i915_handle_error(engine->i915, BIT(engine->id), 0, > + "preemption timed out on %s", engine->name); tasklet_enable(); here for the serialisation on EXECLISTS_ACTIVE_PREEMPT. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx