On Fri, Nov 29, 2024 at 8:59 AM Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> 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@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> > --- > 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 >