Reviewed-by: Christian König <christian.koenig@xxxxxxx> for patches #1,
#3-#5,
Acked-by: Christian König <christian.koenig@xxxxxxx> for patches #6,
#8-#10, #12, #13, #14, #17.
Some nit picks in patches #2, use of // for comments in patch #11 and
question on patch #15/#16
Really big bug in patch #7, that needs to be addressed.
Regards,
Christian.
Am 15.08.24 um 02:04 schrieb Alex Deucher:
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