[PATCH] drm/amdgpu: Fix always_valid bos multiple LRU insertions.

Alex Deucher alexdeucher at gmail.com
Thu Feb 1 04:18:06 UTC 2018


On Wed, Jan 31, 2018 at 7:58 AM, Bas Nieuwenhuizen <basni at chromium.org> wrote:
> If these bos are evicted and are in the validated list
> things blow up, so do not put them in there. Notably,
> that tries to add the bo to the LRU twice, which results
> in a BUG_ON in ttm_bo.c.
>
> While for the bo_list an alternative would be to not allow
> always valid bos in there, that does not work for the user
> fence.
>
> v2: Fixed whitespace issue pointed out by checkpatch.pl
>
> Signed-off-by: Bas Nieuwenhuizen <basni at chromium.org>
> Reviewed-by: Christian König <christian.koenig at amd.com>

Applied.  thanks!

Alex

> ---
>
> Minor whitespace fix, sorry for the noise ...
>  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 6 ++++--
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c      | 2 +-
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> index 59089e027f4d8..95839d33af01d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> @@ -233,8 +233,10 @@ void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list,
>         for (i = 0; i < list->num_entries; i++) {
>                 unsigned priority = list->array[i].priority;
>
> -               list_add_tail(&list->array[i].tv.head,
> -                             &bucket[priority]);
> +               if (!list->array[i].robj->parent)
> +                       list_add_tail(&list->array[i].tv.head,
> +                                     &bucket[priority]);
> +
>                 list->array[i].user_pages = NULL;
>         }
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index f7fceb63413c9..cb3044258b352 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -528,7 +528,7 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
>         INIT_LIST_HEAD(&duplicates);
>         amdgpu_vm_get_pd_bo(&fpriv->vm, &p->validated, &p->vm_pd);
>
> -       if (p->uf_entry.robj)
> +       if (p->uf_entry.robj && !p->uf_entry.robj->parent)
>                 list_add(&p->uf_entry.tv.head, &p->validated);
>
>         while (1) {
> --
> 2.16.0.rc1.238.g530d649a79-goog
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list