On Thu, Mar 20, 2025 at 12:25 AM Srinivasan Shanmugam <[email protected]> wrote: > > Enable the cleaner shader for GFX11.5.0/11.5.1 GPUs to provide data > isolation between GPU workloads. The cleaner shader is responsible for > clearing the Local Data Store (LDS), Vector General Purpose Registers > (VGPRs), and Scalar General Purpose Registers (SGPRs), which helps > prevent data leakage and ensures accurate computation results. > > This update extends cleaner shader support to GFX11.5.0/11.5.1 GPUs, > previously available for GFX11.0.3. It enhances security by clearing GPU > memory between processes and maintains a consistent GPU state across KGD > and KFD workloads. > > Cc: Mario Sopena-Novales <[email protected]> > Cc: Christian König <[email protected]> > Cc: Alex Deucher <[email protected]> > Signed-off-by: Srinivasan Shanmugam <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c > index 8261308fc1f2..e0a9b10d645c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c > @@ -1632,6 +1632,20 @@ static int gfx_v11_0_sw_init(struct amdgpu_ip_block > *ip_block) > } > } > break; > + case IP_VERSION(11, 5, 0): > + case IP_VERSION(11, 5, 1): > + adev->gfx.cleaner_shader_ptr = gfx_11_0_3_cleaner_shader_hex; > + adev->gfx.cleaner_shader_size = > sizeof(gfx_11_0_3_cleaner_shader_hex); > + if (adev->gfx.mec_fw_version >= 26 && > + adev->mes.fw_version[0] >= 114) { > + adev->gfx.enable_cleaner_shader = true; > + r = amdgpu_gfx_cleaner_shader_sw_init(adev, > adev->gfx.cleaner_shader_size); > + if (r) { > + adev->gfx.enable_cleaner_shader = false; > + dev_err(adev->dev, "Failed to initialize > cleaner shader\n"); > + } > + } > + break; > default: > adev->gfx.enable_cleaner_shader = false; > break; > -- > 2.34.1 >
