EXECUTION QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to Execution Queue(9) from the Kernel API Manual β€” yes, the 9 section, we're in kernel API land now πŸ’…

✨ Execution Queue ✨

So an execution queue is literally the interface for the HW context of execution. The user creates an execution queue, submits the GPU jobs through those queues, and in the end destroys them. Periodt. πŸ’–

Execution queues can also be created by XeKMD itself for driver internal operations like object migration etc. Not me being like β€œwho made this queue?” β€” sometimes the driver did. πŸ™ˆ

An execution queue is associated with a specified HW engine or a group of engines (belonging to the same tile and engine class), and any GPU job submitted on the queue will be run on one of these engines. Slay, load balancing vibe. ⭐

An execution queue is tied to an address space (VM). It holds a reference of the associated VM and the underlying Logical Ring Context/s (LRC/s) until the queue is destroyed. The way it keeps those references alive until destruction is honestly iconic. πŸŽ€

The execution queue sits on top of the submission backend. It opaquely handles the GuC and Execlist backends whichever the platform uses, and the ring operations the different engine classes support. It's giving β€œI contain multitudes” fr fr. πŸ¦‹


🌈 SEE ALSO 🌈

Kernel file ./drivers/gpu/drm/xe/xe_exec_queue.c.

mwah πŸ’– that's the whole page, bestie. Source/version: ./drivers/gpu/drm/xe; date: October 2026. Bye! 🫢🌸

πŸ“¦ where this page comes from