[PATCH] drm/amdgpu: move amdgpu_device_get_job_timeout_settings

Grodzovsky, Andrey Andrey.Grodzovsky at amd.com
Fri Oct 4 18:57:40 UTC 2019


Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>

Andrey

On 10/4/19 2:38 PM, Alex Deucher wrote:
> It's only used in amdgpu_device.c and the naming also
> reflects that.  Move it there.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  4 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 64 +++++++++++++++++++++
>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    | 67 ----------------------
>   3 files changed, 67 insertions(+), 68 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 79ea620aac04..f321dc2751e4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -107,6 +107,8 @@ struct amdgpu_mgpu_info
>   	uint32_t			num_apu;
>   };
>   
> +#define AMDGPU_MAX_TIMEOUT_PARAM_LENTH	256
> +
>   /*
>    * Modules parameters.
>    */
> @@ -123,6 +125,7 @@ extern int amdgpu_disp_priority;
>   extern int amdgpu_hw_i2c;
>   extern int amdgpu_pcie_gen2;
>   extern int amdgpu_msi;
> +extern char amdgpu_lockup_timeout[AMDGPU_MAX_TIMEOUT_PARAM_LENTH];
>   extern int amdgpu_dpm;
>   extern int amdgpu_fw_load_type;
>   extern int amdgpu_aspm;
> @@ -427,7 +430,6 @@ struct amdgpu_fpriv {
>   };
>   
>   int amdgpu_file_to_fpriv(struct file *filp, struct amdgpu_fpriv **fpriv);
> -int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev);
>   
>   int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm,
>   		  unsigned size, struct amdgpu_ib *ib);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index ba7d1fa58c5b..660ce71e1ea1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2579,6 +2579,70 @@ static void amdgpu_device_xgmi_reset_func(struct work_struct *__work)
>   			 adev->asic_reset_res, adev->ddev->unique);
>   }
>   
> +static int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev)
> +{
> +	char *input = amdgpu_lockup_timeout;
> +	char *timeout_setting = NULL;
> +	int index = 0;
> +	long timeout;
> +	int ret = 0;
> +
> +	/*
> +	 * By default timeout for non compute jobs is 10000.
> +	 * And there is no timeout enforced on compute jobs.
> +	 * In SR-IOV or passthrough mode, timeout for compute
> +	 * jobs are 10000 by default.
> +	 */
> +	adev->gfx_timeout = msecs_to_jiffies(10000);
> +	adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout;
> +	if (amdgpu_sriov_vf(adev) || amdgpu_passthrough(adev))
> +		adev->compute_timeout = adev->gfx_timeout;
> +	else
> +		adev->compute_timeout = MAX_SCHEDULE_TIMEOUT;
> +
> +	if (strnlen(input, AMDGPU_MAX_TIMEOUT_PARAM_LENTH)) {
> +		while ((timeout_setting = strsep(&input, ",")) &&
> +				strnlen(timeout_setting, AMDGPU_MAX_TIMEOUT_PARAM_LENTH)) {
> +			ret = kstrtol(timeout_setting, 0, &timeout);
> +			if (ret)
> +				return ret;
> +
> +			if (timeout == 0) {
> +				index++;
> +				continue;
> +			} else if (timeout < 0) {
> +				timeout = MAX_SCHEDULE_TIMEOUT;
> +			} else {
> +				timeout = msecs_to_jiffies(timeout);
> +			}
> +
> +			switch (index++) {
> +			case 0:
> +				adev->gfx_timeout = timeout;
> +				break;
> +			case 1:
> +				adev->compute_timeout = timeout;
> +				break;
> +			case 2:
> +				adev->sdma_timeout = timeout;
> +				break;
> +			case 3:
> +				adev->video_timeout = timeout;
> +				break;
> +			default:
> +				break;
> +			}
> +		}
> +		/*
> +		 * There is only one value specified and
> +		 * it should apply to all non-compute jobs.
> +		 */
> +		if (index == 1)
> +			adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout;
> +	}
> +
> +	return ret;
> +}
>   
>   /**
>    * amdgpu_device_init - initialize the driver
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index 5edf74b5c860..bfb4504fa195 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -88,8 +88,6 @@
>   #define KMS_DRIVER_MINOR	35
>   #define KMS_DRIVER_PATCHLEVEL	0
>   
> -#define AMDGPU_MAX_TIMEOUT_PARAM_LENTH	256
> -
>   int amdgpu_vram_limit = 0;
>   int amdgpu_vis_vram_limit = 0;
>   int amdgpu_gart_size = -1; /* auto */
> @@ -1306,71 +1304,6 @@ int amdgpu_file_to_fpriv(struct file *filp, struct amdgpu_fpriv **fpriv)
>   	return 0;
>   }
>   
> -int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev)
> -{
> -	char *input = amdgpu_lockup_timeout;
> -	char *timeout_setting = NULL;
> -	int index = 0;
> -	long timeout;
> -	int ret = 0;
> -
> -	/*
> -	 * By default timeout for non compute jobs is 10000.
> -	 * And there is no timeout enforced on compute jobs.
> -	 * In SR-IOV or passthrough mode, timeout for compute
> -	 * jobs are 10000 by default.
> -	 */
> -	adev->gfx_timeout = msecs_to_jiffies(10000);
> -	adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout;
> -	if (amdgpu_sriov_vf(adev) || amdgpu_passthrough(adev))
> -		adev->compute_timeout = adev->gfx_timeout;
> -	else
> -		adev->compute_timeout = MAX_SCHEDULE_TIMEOUT;
> -
> -	if (strnlen(input, AMDGPU_MAX_TIMEOUT_PARAM_LENTH)) {
> -		while ((timeout_setting = strsep(&input, ",")) &&
> -				strnlen(timeout_setting, AMDGPU_MAX_TIMEOUT_PARAM_LENTH)) {
> -			ret = kstrtol(timeout_setting, 0, &timeout);
> -			if (ret)
> -				return ret;
> -
> -			if (timeout == 0) {
> -				index++;
> -				continue;
> -			} else if (timeout < 0) {
> -				timeout = MAX_SCHEDULE_TIMEOUT;
> -			} else {
> -				timeout = msecs_to_jiffies(timeout);
> -			}
> -
> -			switch (index++) {
> -			case 0:
> -				adev->gfx_timeout = timeout;
> -				break;
> -			case 1:
> -				adev->compute_timeout = timeout;
> -				break;
> -			case 2:
> -				adev->sdma_timeout = timeout;
> -				break;
> -			case 3:
> -				adev->video_timeout = timeout;
> -				break;
> -			default:
> -				break;
> -			}
> -		}
> -		/*
> -		 * There is only one value specified and
> -		 * it should apply to all non-compute jobs.
> -		 */
> -		if (index == 1)
> -			adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout;
> -	}
> -
> -	return ret;
> -}
> -
>   static bool
>   amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
>   				 bool in_vblank_irq, int *vpos, int *hpos,


More information about the amd-gfx mailing list