[PATCH 2/2] amd/amdgpu/sriov tdr enablement with pp_onevf_mode

Quan, Evan Evan.Quan at amd.com
Thu Jan 2 06:19:07 UTC 2020


Acked-by: Evan Quan <evan.quan at amd.com>

> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Jack
> Zhang
> Sent: Thursday, January 2, 2020 1:51 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Zhang, Jack (Jian) <Jack.Zhang1 at amd.com>
> Subject: [PATCH 2/2] amd/amdgpu/sriov tdr enablement with pp_onevf_mode
> 
> Under sriov and pp_onevf mode,
> 1.take resume instead of hw_init for smc recover to avoid
> potential memory leak.
> 
> 2.add return condition inside smc resume function for
> sriov_pp_onevf_mode and pm_enabled param.
> 
> Signed-off-by: Jack Zhang <Jack.Zhang1 at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++++-
>  drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 6 ++++++
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index bdd9502..f003e9a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2462,7 +2462,11 @@ static int
> amdgpu_device_ip_reinit_late_sriov(struct amdgpu_device *adev)
>  				block->status.hw)
>  				continue;
> 
> -			r = block->version->funcs->hw_init(adev);
> +			if (block->version->type == AMD_IP_BLOCK_TYPE_SMC)
> +				r = block->version->funcs->resume(adev);
> +			else
> +				r = block->version->funcs->hw_init(adev);
> +
>  			DRM_INFO("RE-INIT-late: %s %s\n", block->version-
> >funcs->name, r?"failed":"succeeded");
>  			if (r)
>  				return r;
> diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> index fa17265..2e4a8d2 100644
> --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> @@ -1420,6 +1420,12 @@ static int smu_resume(void *handle)
>  	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>  	struct smu_context *smu = &adev->smu;
> 
> +	if (amdgpu_sriov_vf(adev)&& !amdgpu_sriov_is_pp_one_vf(adev))
> +		return 0;
> +
> +	if (!smu->pm_enabled)
> +		return 0;
> +
>  	pr_info("SMU is resuming...\n");
> 
>  	ret = smu_start_smc_engine(smu);
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.free
> desktop.org%2Fmailman%2Flistinfo%2Famd-
> gfx&data=02%7C01%7Cevan.quan%40amd.com%7C510c8150ee8c4c48b2
> d808d78f47cc1e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637
> 135410904680615&sdata=xmMYgHzXPQGykGDvTGvPrZX2W5yfOS3nOkNh
> AF%2FQYQY%3D&reserved=0


More information about the amd-gfx mailing list