[PATCH 00/17] Process Isolation Support

Alex Deucher alexander.deucher at amd.com
Thu Aug 15 00:04:44 UTC 2024


This patch set enables process isolation mode which
serializes access to the graphics block between processes.
When this mode is active, a cleaner shader is run between
processes to clear shader LDS (Local Data Store) and GPRs
(General Purpose Registers).  A sysfs interface is
also available to manually clear LDS and GPRs if you
for example want to clear LDS and GPRs when a user logs out.

This includes support for GFX 9.4.3 and 9.4.4.  Support for
other GPUs is in progress and will be available when ready.

Alex Deucher (2):
  drm/amdgpu: handle enforce isolation on non-0 gfxhub
  drm/amdgpu: Emit cleaner shader at end of IB submission

Amber Lin (2):
  drm/amdkfd: APIs to stop/start KFD scheduling
  drm/amdkfd: Enable processes isolation on gfx9

Srinivasan Shanmugam (13):
  drm/amdgpu: Add infrastructure for Cleaner Shader feature
  drm/amdgpu: Make enforce_isolation setting per GPU
  drm/amdgpu: Enforce isolation as part of the job
  drm/amdgpu: Add enforce_isolation sysfs attribute
  drm/amdgpu: Add sysfs interface for running cleaner shader
  drm/amdgpu: Add PACKET3_RUN_CLEANER_SHADER for cleaner shader
    execution
  drm/amdgpu/gfx9: Implement cleaner shader support for GFX9 hardware
  drm/amdgpu/gfx9: Implement cleaner shader support for GFX9.4.3
    hardware
  drm/amdgpu/gfx9: Add cleaner shader for GFX9.4.3
  drm/amdgpu/gfx9: Add cleaner shader support for GFX9.4.4 hardware
  drm/amdgpu: Implement Enforce Isolation Handler for KGD/KFD
    serialization
  drm/amdgpu/gfx9: Apply Isolation Enforcement to GFX & Compute rings
  drm/amdgpu/gfx_v9_4_3: Apply Isolation Enforcement to GFX & Compute
    rings

 drivers/gpu/drm/amd/amdgpu/amdgpu.h           |   6 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |  18 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h    |  14 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  23 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c       | 437 ++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h       |  31 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c       |  17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h       |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.h       |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h      |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |   6 +
 drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c    |   4 +
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c         |  51 +-
 .../drm/amd/amdgpu/gfx_v9_0_cleaner_shader.h  |  26 ++
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c       |  60 ++-
 .../amd/amdgpu/gfx_v9_4_3_cleaner_shader.asm  | 153 ++++++
 .../amd/amdgpu/gfx_v9_4_3_cleaner_shader.h    |  64 +++
 drivers/gpu/drm/amd/amdgpu/soc15d.h           |   4 +
 drivers/gpu/drm/amd/amdkfd/kfd_device.c       |  39 ++
 .../drm/amd/amdkfd/kfd_device_queue_manager.c |  58 ++-
 .../drm/amd/amdkfd/kfd_device_queue_manager.h |   9 +
 .../drm/amd/amdkfd/kfd_packet_manager_v9.c    |  14 +-
 .../gpu/drm/amd/amdkfd/kfd_pm4_headers_ai.h   |   5 +-
 .../amd/amdkfd/kfd_pm4_headers_aldebaran.h    |   2 +-
 25 files changed, 1028 insertions(+), 23 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v9_0_cleaner_shader.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3_cleaner_shader.asm
 create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3_cleaner_shader.h

-- 
2.46.0



More information about the amd-gfx mailing list