[PATCH v2] Adjust MES polling timeout for sriov worst case

Alex Deucher alexdeucher at gmail.com
Tue Oct 18 16:01:59 UTC 2022


On Tue, Oct 18, 2022 at 5:19 AM Yiqing Yao <yiqing.yao at amd.com> wrote:
>
> [why]
> MES response time in sriov may be longer than default value
> due to reset or init in other VF. A timeout value specific
> to sriov is needed.
>
> [how]
> When in sriov, adjust the timeout value to calculated
> worst case scenario.
>
> Signed-off-by: Yiqing Yao <yiqing.yao at amd.com>

Please prefix your patch subject with drm/amdgpu:.  E.g.,
drm/amdgpu: Adjust MES polling timeout for sriov worst case

With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> index 1174dcc88db5..8d265598d4b3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> @@ -98,7 +98,14 @@ static int mes_v11_0_submit_pkt_and_poll_completion(struct amdgpu_mes *mes,
>         struct amdgpu_device *adev = mes->adev;
>         struct amdgpu_ring *ring = &mes->ring;
>         unsigned long flags;
> +       signed long timeout = adev->usec_timeout;
>
> +       if (amdgpu_emu_mode) {
> +               timeout *= 100;
> +       } else if (amdgpu_sriov_vf(adev)) {
> +               /* Worst case in sriov where all other 15 VF timeout, each VF needs about 600ms */
> +               timeout = 15 * 600 * 1000;
> +       }
>         BUG_ON(size % 4 != 0);
>
>         spin_lock_irqsave(&mes->ring_lock, flags);
> @@ -118,7 +125,7 @@ static int mes_v11_0_submit_pkt_and_poll_completion(struct amdgpu_mes *mes,
>         DRM_DEBUG("MES msg=%d was emitted\n", x_pkt->header.opcode);
>
>         r = amdgpu_fence_wait_polling(ring, ring->fence_drv.sync_seq,
> -                     adev->usec_timeout * (amdgpu_emu_mode ? 100 : 1));
> +                     timeout);
>         if (r < 1) {
>                 DRM_ERROR("MES failed to response msg=%d\n",
>                           x_pkt->header.opcode);
> --
> 2.34.1
>


More information about the amd-gfx mailing list