[PATCH 28/65] drm/ttm: WARN_ON non-empty lru when disabling a resource manager

Daniel Vetter daniel.vetter at ffwll.ch
Fri Oct 23 14:56:20 UTC 2020


On Fri, Oct 23, 2020 at 4:54 PM Christian König
<christian.koenig at amd.com> wrote:
>
> Am 23.10.20 um 14:21 schrieb Daniel Vetter:
> > ttm_resource_manager->use_type is only used for runtime changes by
> > vmwgfx. I think ideally we'd push this functionality into drivers -
> > ttm itself does not provide any locking to guarantee this is safe, so
> > the only way this can work at runtime is if the driver does provide
> > additional guarantees. vwmgfx does that through the
> > vmw_private->reservation_sem. Therefore supporting this feature in
> > shared code feels a bit misplaced.
> >
> > As a first step add a WARN_ON to make sure the resource manager is
> > empty. This is just to make sure I actually understand correctly what
> > vmwgfx is doing, and to make sure an eventual subsequent refactor
> > doesn't break anything.
> >
> > This check should also be useful for other drivers, to make sure they
> > haven't leaked anything.
> >
> > Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> > Cc: Christian Koenig <christian.koenig at amd.com>
> > Cc: Huang Rui <ray.huang at amd.com>
>
> I'm pretty sure that this will trigger for vmwgfx. But that's what it is
> supposed to do, isn't it?

Yeah, this is an accidental dump of my wip pile, and it's not done yet
at all. Please disregard (at least for now).
-Daniel

> Reviewed-by: Christian König <christian.koenig at amd.com>
>
> > ---
> >   include/drm/ttm/ttm_resource.h | 4 ++++
> >   1 file changed, 4 insertions(+)
> >
> > diff --git a/include/drm/ttm/ttm_resource.h b/include/drm/ttm/ttm_resource.h
> > index f48a70d39ac5..789ec477b607 100644
> > --- a/include/drm/ttm/ttm_resource.h
> > +++ b/include/drm/ttm/ttm_resource.h
> > @@ -191,6 +191,10 @@ struct ttm_resource {
> >   static inline void
> >   ttm_resource_manager_set_used(struct ttm_resource_manager *man, bool used)
> >   {
> > +     int i;
> > +
> > +     for (i = 0; i < TTM_MAX_BO_PRIORITY; i++)
> > +             WARN_ON(!list_empty(&man->lru[i]));
> >       man->use_type = used;
> >   }
> >
>


-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list