mbox series

[RFC,0/9] CCS static load balance

Message ID 20240723112046.123938-1-andi.shyti@linux.intel.com (mailing list archive)
Headers show
Series CCS static load balance | expand

Message

Andi Shyti July 23, 2024, 11:20 a.m. UTC
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(-)