[PATCH] drm/amd/amdgpu: Add Descriptions to Process Isolation and Cleaner Shader Sysfs Functions

Alex Deucher alexdeucher at gmail.com
Wed Dec 4 15:29:11 UTC 2024


On Fri, Nov 29, 2024 at 8:59 AM Srinivasan Shanmugam
<srinivasan.shanmugam at amd.com> wrote:
>
> This update adds explainations to key functions related to process

explanations

> isolation and cleaner shader execution sysfs interfaces.
>
> - `amdgpu_gfx_set_run_cleaner_shader`: Describes how to run the cleaner
>   shader via the sysfs interface in clearing the Local Data Store
> (LDS) and General Purpose Registers (GPRs).
>
> - `amdgpu_gfx_get_enforce_isolation`: Describes how to query the current
>   settings of the 'enforce_isolation' feature for each GPU partition.
>
> - `amdgpu_gfx_set_enforce_isolation`: Describes how to enable or disable
>   process isolation for GPU partitions through the sysfs interface.
>
> 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>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 45 +++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> index e54f42e3797e..881a633bf0ab 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> @@ -1484,6 +1484,24 @@ static int amdgpu_gfx_run_cleaner_shader(struct amdgpu_device *adev, int xcp_id)
>         return 0;
>  }
>
> +/**
> + * amdgpu_gfx_set_run_cleaner_shader - Execute the AMDGPU GFX Cleaner Shader
> + * @dev: The device structure
> + * @attr: The device attribute structure
> + * @buf: The buffer containing the input data
> + * @count: The size of the input data
> + *
> + * This function allows manual execution of the cleaner shader, which is

Provides the sysfs interface to manually run a cleaner shader which is

> + * used to reset the GPU state between different tasks. Writing '0' to the

s/reset/clear/

You say 0 here and then you say that the value corresponds to the
partition number later.  I'd condense this down to one sentence and
say that it is the partition.

> + * 'run_cleaner_shader' sysfs file triggers the cleaner shader execution.
> + * The value written corresponds to the partition index on multi-partition
> + * devices. On single-partition devices, the value should be '0'.
> + *
> + * The cleaner shader clears the Local Data Store (LDS) and General Purpose
> + * Registers (GPRs) to ensure data isolation between GPU workloads.
> + *
> + * Return: The number of bytes written to the sysfs file.
> + */
>  static ssize_t amdgpu_gfx_set_run_cleaner_shader(struct device *dev,
>                                                  struct device_attribute *attr,
>                                                  const char *buf,
> @@ -1532,6 +1550,19 @@ static ssize_t amdgpu_gfx_set_run_cleaner_shader(struct device *dev,
>         return count;
>  }
>
> +/**
> + * amdgpu_gfx_get_enforce_isolation - Query AMDGPU GFX Enforce Isolation Settings
> + * @dev: The device structure
> + * @attr: The device attribute structure
> + * @buf: The buffer to store the output data
> + *
> + * This function provides the current settings of the 'enforce_isolation'

This provides the sysfs read interface to get the current settings of
the 'enforce_isolation'

> + * feature for each GPU partition. Reading from the 'enforce_isolation'
> + * sysfs file returns the isolation settings for all partitions, where '0'
> + * indicates disabled and '1' indicates enabled.
> + *
> + * Return: The number of bytes read from the sysfs file.
> + */
>  static ssize_t amdgpu_gfx_get_enforce_isolation(struct device *dev,
>                                                 struct device_attribute *attr,
>                                                 char *buf)
> @@ -1555,6 +1586,20 @@ static ssize_t amdgpu_gfx_get_enforce_isolation(struct device *dev,
>         return size;
>  }
>
> +/**
> + * amdgpu_gfx_set_enforce_isolation - Control AMDGPU GFX Enforce Isolation
> + * @dev: The device structure
> + * @attr: The device attribute structure
> + * @buf: The buffer containing the input data
> + * @count: The size of the input data
> + *
> + * This function allows control over the 'enforce_isolation' feature, which

This provides the sysfs write interface for the 'enforce_isolation'
feature, which

> + * serializes access to the graphics engine. Writing '1' or '0' to the
> + * 'enforce_isolation' sysfs file enables or disables process isolation for
> + * each partition. The input should specify the setting for all partitions.
> + *
> + * Return: The number of bytes written to the sysfs file.
> + */
>  static ssize_t amdgpu_gfx_set_enforce_isolation(struct device *dev,
>                                                 struct device_attribute *attr,
>                                                 const char *buf, size_t count)
> --
> 2.34.1
>


More information about the amd-gfx mailing list