[PATCH] drm/amdgpu: fix number of fence calculations

Alex Deucher alexdeucher at gmail.com
Wed Jun 21 03:56:31 UTC 2023


On Tue, Jun 20, 2023 at 7:18 AM Christian König
<ckoenig.leichtzumerken at gmail.com> wrote:
>
> Since adding gang submit we need to take the gang size into account
> while reserving fences.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> Fixes: 4624459c84d7 ("drm/amdgpu: add gang submit frontend v6")

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index d9503882ea97..b34f9f8d33d2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -136,9 +136,6 @@ static int amdgpu_cs_p1_user_fence(struct amdgpu_cs_parser *p,
>         bo = amdgpu_bo_ref(gem_to_amdgpu_bo(gobj));
>         p->uf_entry.priority = 0;
>         p->uf_entry.tv.bo = &bo->tbo;
> -       /* One for TTM and two for the CS job */
> -       p->uf_entry.tv.num_shared = 3;
> -
>         drm_gem_object_put(gobj);
>
>         size = amdgpu_bo_size(bo);
> @@ -912,15 +909,19 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
>
>         mutex_lock(&p->bo_list->bo_list_mutex);
>
> -       /* One for TTM and one for the CS job */
> +       /* One for TTM and one for each CS job */
>         amdgpu_bo_list_for_each_entry(e, p->bo_list)
> -               e->tv.num_shared = 2;
> +               e->tv.num_shared = 1 + p->gang_size;
> +       p->uf_entry.tv.num_shared = 1 + p->gang_size;
>
>         amdgpu_bo_list_get_list(p->bo_list, &p->validated);
>
>         INIT_LIST_HEAD(&duplicates);
>         amdgpu_vm_get_pd_bo(&fpriv->vm, &p->validated, &p->vm_pd);
>
> +       /* Two for VM updates, one for TTM and one for each CS job */
> +       p->vm_pd.tv.num_shared = 3 + p->gang_size;
> +
>         if (p->uf_entry.tv.bo && !ttm_to_amdgpu_bo(p->uf_entry.tv.bo)->parent)
>                 list_add(&p->uf_entry.tv.head, &p->validated);
>
> --
> 2.34.1
>


More information about the amd-gfx mailing list