[Intel-gfx] [RFC 0/8] Force preemption
Chris Wilson
chris at chris-wilson.co.uk
Fri Mar 16 21:03:25 UTC 2018
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
More information about the Intel-gfx
mailing list