On Wed, Jan 08, 2025 at 08:36:02PM +0530, Tejas Upadhyay wrote:
Allow user to provide a low latency hint per exec queue. When set, KMD sends a hint to GuC which results in special handling for this exec queue. SLPC will ramp the GT frequency aggressively every time it switches to this exec queue. We need to enable the use of SLPC Compute strategy during init, but it will apply only to exec queues that set this bit during exec queue creation. UMD will indicate low latency hint with flag as mentioned below, * struct drm_xe_exec_queue_create exec_queue_create = { * .flags = DRM_XE_EXEC_QUEUE_LOW_LATENCY_HINT or 0 * .extensions = 0, * .vm_id = vm, * .num_bb_per_exec = 1, * .num_eng_per_bb = 1, * .instances = to_user_pointer(&instance), * }; * ioctl(fd, DRM_IOCTL_XE_EXEC_QUEUE_CREATE, &exec_queue_create); Note: UMD is implementing respecitve usage example, once pull request is ready, will reference here.
motivation here is needed... the compute workload is bursty and benefit from aggressive GT frequency ramp rather than the slower one, which reduces the submission latency. Feel free to add the numbers before and after with a hacked userspace/kernel integration showing how the kernel latency reduces in clpeak. Cc: Michal Mrozek <michal.mrozek@xxxxxxxxx> Cc: Szymon Morek <szymon.morek@xxxxxxxxx> For i915 there's also this use on the mesa side: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28282 Cc: José Roberto de Souza <jose.souza@xxxxxxxxx> to know if it'd be interesting for them when using xe. Lucas De Marchi