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 for cleaner shader execution

This commit adds the PACKET3_RUN_CLEANER_SHADER definition. This packet
is a command packet used to instruct the GPU to execute the cleaner
shader.

The cleaner shader is a piece of GPU code that is used to clear or
initialize certain GPU resources, such as Local Data Share (LDS), Vector
General Purpose Registers (VGPRs), and Scalar General Purpose Registers
(SGPRs). Clearing these resources is important for ensuring data
isolation between different workloads running on the GPU.

The PACKET3_RUN_CLEANER_SHADER packet is used to trigger the execution
of the cleaner shader on the GPU. The packet consists of a header
followed by a RESERVED field, which is programmed to zero. When the GPU
receives this packet, it fetches and executes the cleaner shader
instructions from the location specified in the packet.

The cleaner shader feature helps to enhances security and reliability by
preventing data leaks between 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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Srinivasan Shanmugam and committed by
Alex Deucher
22ff907d d361ad5d

+4
+4
drivers/gpu/drm/amd/amdgpu/soc15d.h
··· 413 413 # define PACKET3_QUERY_STATUS_DOORBELL_OFFSET(x) ((x) << 2) 414 414 # define PACKET3_QUERY_STATUS_ENG_SEL(x) ((x) << 25) 415 415 416 + #define PACKET3_RUN_CLEANER_SHADER 0xD2 417 + /* 1. header 418 + * 2. RESERVED [31:0] 419 + */ 416 420 417 421 #define VCE_CMD_NO_OP 0x00000000 418 422 #define VCE_CMD_END 0x00000001