[Intel-gfx] HWSP for HW semaphores

Chris Wilson chris at chris-wilson.co.uk
Mon Jan 21 22:20:43 UTC 2019


I extended the HWSP implementation to consider the impact of using it
for HW semaphores, one of the end goals of per-context seqno. That opens
up an interesting problem in that we need to keep the HWSP around until
all external GPU references to it are retired. For simplicity, this is
until the GPU is next idle, but Tvrtko suggested the likelihood of that
happening on a busy system is slight and those busy systems are also
more likely to run into resource contentions issues as well. That was a
can of worms I was hoping to ignore until later, as one of the
simplifications for removing the global_seqno was that we could simply
keep all resources pinned until idle, a full GC. With a full GC being
forced if we ever starved. Far more graceful is that if we did a more
incremental GC, and combined with the case of tracking external references
we would end up with a read-copy-update mechanism...

Anyway this series shows off HW semaphores for inter-engine
synchronisation and should also extend easily to unordered work queuing
unto the GuC. I need the fence primitives for the next (well, older!)
series...
-Chris




More information about the Intel-gfx mailing list