]> git.ipfire.org Git - thirdparty/linux.git/commit
drm/xe: Split H2G and G2H into separate buffer objects
authorMatthew Brost <matthew.brost@intel.com>
Wed, 18 Feb 2026 04:33:17 +0000 (20:33 -0800)
committerMatthew Brost <matthew.brost@intel.com>
Thu, 26 Feb 2026 18:16:44 +0000 (10:16 -0800)
commitaf3de6cf06f9497a60510b87bf77e8fb4124ba9f
tree829344a0357b980009a07076f1abe2bdbaff04ef
parent2bcbf2dcde0c839a73af664a3c77d4e77d58a3eb
drm/xe: Split H2G and G2H into separate buffer objects

H2G and G2H buffers have different access patterns (H2G is CPU-write,
GuC-read, while G2H is GPU-write, CPU-read). On dGPU, these patterns
benefit from different memory placements: H2G in VRAM and G2H in system
memory. Split the CT buffer into two separate buffers—one for H2G and
one for G2H—and select the optimal placement for each.

This provides a significant performance improvement on the G2H read
path, reducing a single read from ~20 µs to under 1 µs on BMG.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patch.msgid.link/20260218043319.809548-2-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_guc_ct.c
drivers/gpu/drm/xe/xe_guc_ct_types.h