[PATCH 3/3] drm/amdgpu: Issue ras enable_feature for gfx ip only
Zhou1, Tao
Tao.Zhou1 at amd.com
Tue Jul 4 04:00:41 UTC 2023
[AMD Official Use Only - General]
The series is:
Reviewed-by: Tao Zhou <tao.zhou1 at amd.com>
> -----Original Message-----
> From: Zhang, Hawking <Hawking.Zhang at amd.com>
> Sent: Monday, July 3, 2023 4:56 PM
> To: amd-gfx at lists.freedesktop.org; Zhou1, Tao <Tao.Zhou1 at amd.com>; Yang,
> Stanley <Stanley.Yang at amd.com>; Chai, Thomas <YiPeng.Chai at amd.com>; Li,
> Candice <Candice.Li at amd.com>
> Cc: Zhang, Hawking <Hawking.Zhang at amd.com>
> Subject: [PATCH 3/3] drm/amdgpu: Issue ras enable_feature for gfx ip only
>
> For non-GFX IP blocks, set up ras obj if ras feature is allowed. For GFX IP blocks,
> force issue ras enable_feature command to firmware and only set up ras obj if ras
> feature is allowed
>
> Signed-off-by: Hawking Zhang <Hawking.Zhang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 30 +++++++++----------------
> 1 file changed, 10 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> index 8524365761b6..2e9154bbec64 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> @@ -761,16 +761,6 @@ static int __amdgpu_ras_feature_enable(struct
> amdgpu_device *adev,
> return 0;
> }
>
> -static int amdgpu_ras_check_feature_allowed(struct amdgpu_device *adev,
> - struct ras_common_if *head)
> -{
> - if (amdgpu_ras_is_feature_allowed(adev, head) ||
> - amdgpu_ras_is_poison_mode_supported(adev))
> - return 1;
> - else
> - return 0;
> -}
> -
> /* wrapper of psp_ras_enable_features */ int
> amdgpu_ras_feature_enable(struct amdgpu_device *adev,
> struct ras_common_if *head, bool enable) @@ -782,7 +772,16
> @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev,
> if (!con)
> return -EINVAL;
>
> - if (head->block == AMDGPU_RAS_BLOCK__GFX) {
> + /* Do not enable ras feature if it is not allowed */
> + if (enable &&
> + head->block != AMDGPU_RAS_BLOCK__GFX &&
> + !amdgpu_ras_is_feature_allowed(adev, head))
> + goto out;
> +
> + /* Only enable gfx ras feature from host side */
> + if (head->block == AMDGPU_RAS_BLOCK__GFX &&
> + !amdgpu_sriov_vf(adev) &&
> + !amdgpu_ras_intr_triggered()) {
> info = kzalloc(sizeof(union ta_ras_cmd_input), GFP_KERNEL);
> if (!info)
> return -ENOMEM;
> @@ -798,16 +797,7 @@ int amdgpu_ras_feature_enable(struct amdgpu_device
> *adev,
> .error_type = amdgpu_ras_error_to_ta(head-
> >type),
> };
> }
> - }
>
> - /* Do not enable if it is not allowed. */
> - if (enable && !amdgpu_ras_check_feature_allowed(adev, head))
> - goto out;
> -
> - /* Only enable ras feature operation handle on host side */
> - if (head->block == AMDGPU_RAS_BLOCK__GFX &&
> - !amdgpu_sriov_vf(adev) &&
> - !amdgpu_ras_intr_triggered()) {
> ret = psp_ras_enable_features(&adev->psp, info, enable);
> if (ret) {
> dev_err(adev->dev, "ras %s %s failed poison:%d
> ret:%d\n",
> --
> 2.17.1
More information about the amd-gfx
mailing list