Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: Add PACKET3_RUN_CLEANER_SHADER_9_0 for Cleaner Shader execution

This commit introduces the PACKET3_RUN_CLEANER_SHADER_9_0 definition,
which is a command packet utilized to instruct the GPU to execute the
cleaner shader for the GFX9.0 graphics architecture.

The cleaner shader is a piece of GPU code that is responsible for
clearing or initializing essential GPU resources, such as Local Data
Share (LDS), Vector General Purpose Registers (VGPRs), and Scalar
General Purpose Registers (SGPRs). Properly clearing these resources is
vital for ensuring data isolation and security between different
workloads executed on the GPU.

When the GPU receives this packet, it fetches and runs the cleaner
shader instructions from the specified location in the packet. Thus by
preventing data leaks and ensuring that previous job states do not
interfere with subsequent workloads.

Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Srinivasan Shanmugam and committed by
Alex Deucher
8896abcf cf93f101

+5
+5
drivers/gpu/drm/amd/amdgpu/soc15d.h
··· 552 552 # define PACKET3_QUERY_STATUS_DOORBELL_OFFSET(x) ((x) << 2) 553 553 # define PACKET3_QUERY_STATUS_ENG_SEL(x) ((x) << 25) 554 554 555 + #define PACKET3_RUN_CLEANER_SHADER_9_0 0xD7 556 + /* 1. header 557 + * 2. RESERVED [31:0] 558 + */ 559 + 555 560 #define PACKET3_RUN_CLEANER_SHADER 0xD2 556 561 /* 1. header 557 562 * 2. RESERVED [31:0]