[Intel-gfx] [PATCH 29/33] drm/i915: Implement an "idle" barrier

Chris Wilson chris at chris-wilson.co.uk
Fri Jan 25 08:43:38 UTC 2019


Quoting Chris Wilson (2019-01-25 02:30:01)
> We have a number of tasks that we like to run when idle and parking the
> GPU into a powersaving mode. A few of those tasks are using the global
> idle point as a convenient moment when all previous execution has been
> required (and so we know that the GPU is not still touching random
> user memory). However, on a busy system we are unlikely to see global
> idle points, and would prefer a much more incremental system of being
> able to retire after all current execution has completed.
> 
> Enter the idle barrier and idle tasks.
> 
> To determine a point in the future when all current tasks are complete,
> we schedule a new low priority request that will be executed after all
> current work is complete, and by imposing a barrier before all future
> work. We therefore know we retire that barrier, the GPU is no longer
> touching any memory released before the barrier was submitting allowing
> us to run a set of idle tasks clear of any dangling GPU references.

The biggest downside is that this does impose a global barrier onto the
system, a point which PI cannot pass.

After sleeping on it, I think I prefer not to take this approach, as
interesting as it is, just yet (for HW semaphores, we can just keep track
of the read references).
-Chris


More information about the Intel-gfx mailing list