Hi, This patch series introduces static load balancing for GPUs with multiple compute engines. It's a lengthy series, and some challenging aspects still need to be resolved. I have tried to split the work as much as possible to facilitate the review process. To summarize, in patches 1 to 7, no functional changes occur except for the addition of the num_cslices interface. The significant changes happen in patch 8, which is the core part of the CCS mode setting, utilizing the groundwork laid in the earlier patches. The i915 driver is not designed to support dynamic removal and addition of engines, so this process requires careful attention as it can fail in various ways. One aspect still missing is client management. We need to prevent users from connecting to i915 until all engines are recreated. There may be a need for a global protection mechanism, or perhaps I am overlooking something. I welcome any suggestions on this matter. I would greatly appreciate further input from all reviewers who have already assisted with the previous work. Additionally, I would be grateful if Chris Wilson could join the discussion and provide his insights, as we have previously had valuable exchanges on this topic. Although this series is not yet fully ready, I am submitting it to gather feedback early on. My goal is to have this series included in version 6.12. IGT tests have also been developed, but I haven't sent them yet. Thanks, Andi Andi Shyti (9): drm/i915/gt: Refactor uabi engine class/instance list creation drm/i915/gt: Rename "cslises" with "cslice_mask" drm/i915/gt: Move CCS mode mask creation to intel_ccs_mode.c drm/i915/gt: Expose the number of total CCS slices drm/i915/gt: Move the CCS mode variable to a global position drm/i915/gt: Add sysfs cleanup function for engines drm/i915/gt: Allow the creation of multi-mode CCS masks drm/i915/gt: Allow the user to change the CCS mode through sysfs drm/i915/gt: Document CCS mode load balancing Documentation/gpu/i915.rst | 3 + drivers/gpu/drm/i915/gt/intel_engine_cs.c | 52 +-- drivers/gpu/drm/i915/gt/intel_engine_types.h | 3 + drivers/gpu/drm/i915/gt/intel_engine_user.c | 29 +- drivers/gpu/drm/i915/gt/intel_gt.c | 3 + drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.c | 319 +++++++++++++++++-- drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.h | 6 +- drivers/gpu/drm/i915/gt/intel_gt_sysfs.c | 2 + drivers/gpu/drm/i915/gt/intel_gt_types.h | 14 +- drivers/gpu/drm/i915/gt/intel_workarounds.c | 7 +- drivers/gpu/drm/i915/gt/sysfs_engines.c | 18 ++ drivers/gpu/drm/i915/gt/sysfs_engines.h | 1 + drivers/gpu/drm/i915/i915_drv.h | 1 + 13 files changed, 372 insertions(+), 86 deletions(-) -- 2.45.2