[PATCH 15/17] drm/amdgpu/gfx9: Apply Isolation Enforcement to GFX & Compute rings

Christian König ckoenig.leichtzumerken at gmail.com
Thu Aug 22 06:35:04 UTC 2024


Am 15.08.24 um 02:04 schrieb Alex Deucher:
> From: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
>
> This commit applies isolation enforcement to the GFX and Compute rings
> in the gfx_v9_0 module.
>
> The commit sets `amdgpu_gfx_enforce_isolation_ring_begin_use` and
> `amdgpu_gfx_enforce_isolation_ring_end_use` as the functions to be
> called when a ring begins and ends its use, respectively.
>
> `amdgpu_gfx_enforce_isolation_ring_begin_use` is called when a ring
> begins its use. This function cancels any scheduled
> `enforce_isolation_work` and, if necessary, signals the Kernel Fusion
> Driver (KFD) to stop the runqueue.
>
> `amdgpu_gfx_enforce_isolation_ring_end_use` is called when a ring ends
> its use. This function schedules `enforce_isolation_work` to be run
> after a delay.
>
> These functions are part of the Enforce Isolation Handler, which
> enforces shader isolation on AMD GPUs to prevent data leakage between
> different processes.
>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> Suggested-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index 3045b8b0796d..21089aadbb7b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -7470,6 +7470,8 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_gfx = {
>   	.emit_mem_sync = gfx_v9_0_emit_mem_sync,
>   	.reset = gfx_v9_0_reset_kgq,
>   	.emit_cleaner_shader = gfx_v9_0_ring_emit_cleaner_shader,
> +	.begin_use = amdgpu_gfx_enforce_isolation_ring_begin_use,
> +	.end_use = amdgpu_gfx_enforce_isolation_ring_end_use,

Does it make sense to have that for the MCBP ring as well?

Christian.

>   };
>   
>   static const struct amdgpu_ring_funcs gfx_v9_0_sw_ring_funcs_gfx = {
> @@ -7528,6 +7530,8 @@ static const struct amdgpu_ring_funcs gfx_v9_0_sw_ring_funcs_gfx = {
>   	.patch_de = gfx_v9_0_ring_patch_de_meta,
>   	.patch_ce = gfx_v9_0_ring_patch_ce_meta,
>   	.emit_cleaner_shader = gfx_v9_0_ring_emit_cleaner_shader,
> +	.begin_use = amdgpu_gfx_enforce_isolation_ring_begin_use,
> +	.end_use = amdgpu_gfx_enforce_isolation_ring_end_use,
>   };
>   
>   static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
> @@ -7569,6 +7573,8 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
>   	.emit_wave_limit = gfx_v9_0_emit_wave_limit,
>   	.reset = gfx_v9_0_reset_kcq,
>   	.emit_cleaner_shader = gfx_v9_0_ring_emit_cleaner_shader,
> +	.begin_use = amdgpu_gfx_enforce_isolation_ring_begin_use,
> +	.end_use = amdgpu_gfx_enforce_isolation_ring_end_use,
>   };
>   
>   static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_kiq = {



More information about the amd-gfx mailing list