[RFC v3 0/3] CCS save restore for IGPU
Satyanarayana K V P
satyanarayana.k.v.p at intel.com
Tue May 20 15:09:42 UTC 2025
Prior IGPU design had compression supported in GPU VA domain. For
Virtualization, this makes compression Meta data save/restore for VF as not
necessary (i.e. Compression Meta data space is automatically save/restore with
normal guest/VM memory).
With latest Xe2 architecture, compression is supported by Flat, physical domain.
Meta data/compression control surface (Aka CCS) and association is in physical
domain and data is located in BIOS/firmware-reserved CCS pool. In
virtualization/SRIOV when VF save/restore now have to account for save/restore
VF associated CCS. Without this feature any restore of compressed resource in
IGPU VF domain will have corruption as Meta data will not be restore correctly
as a part of VF save/restore flow. Making it must have/functional feature if we
are supporting compression and Save/restore of VF on IGPU platform.
This is the first in series which adds support for CCS save/restore for IGPU.
V2 -> V3:
- Added new variable which denotes the initialization of contexts.
- Attach and detach functions check for IS_VF_CCS_READY().
- Made xe_migrate structure private as per review comments.
- Created new xe_migrate functions to get lrc and exec_queue.
V1 -> V2:
- Fixed review comments.
Satyanarayana K V P (3):
drm/xe/vf: Create contexts for CCS read write
drm/xe/vf: Attach and detach CCS copy commands with BO
drm/xe/vf: Register CCS read/write contexts with Guc
drivers/gpu/drm/xe/Makefile | 3 +-
drivers/gpu/drm/xe/xe_bb.c | 33 +++
drivers/gpu/drm/xe/xe_bb.h | 1 +
drivers/gpu/drm/xe/xe_bo.c | 14 +
drivers/gpu/drm/xe/xe_bo_types.h | 3 +
drivers/gpu/drm/xe/xe_device.c | 4 +
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_gt_debugfs.c | 36 +++
drivers/gpu/drm/xe/xe_guc_fwif.h | 5 +
drivers/gpu/drm/xe/xe_guc_submit.c | 37 ++-
drivers/gpu/drm/xe/xe_guc_submit.h | 1 +
drivers/gpu/drm/xe/xe_migrate.c | 191 ++++++++++++
drivers/gpu/drm/xe/xe_migrate.h | 11 +
drivers/gpu/drm/xe/xe_pm.c | 3 +
drivers/gpu/drm/xe/xe_sriov.c | 20 ++
drivers/gpu/drm/xe/xe_sriov.h | 1 +
drivers/gpu/drm/xe/xe_sriov_types.h | 5 +
drivers/gpu/drm/xe/xe_sriov_vf_ccs.c | 321 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_sriov_vf_ccs.h | 17 ++
drivers/gpu/drm/xe/xe_sriov_vf_ccs_types.h | 35 +++
20 files changed, 742 insertions(+), 3 deletions(-)
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs.h
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs_types.h
--
2.43.0
More information about the Intel-xe
mailing list