On Mon, Aug 1, 2022 at 1:26 PM Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx> wrote: > > On 8/1/22 23:13, Dmitry Osipenko wrote: > > On 8/1/22 23:11, Dmitry Osipenko wrote: > >> On 8/1/22 23:00, Rob Clark wrote: > >>> On Mon, Aug 1, 2022 at 12:41 PM Dmitry Osipenko > >>> <dmitry.osipenko@xxxxxxxxxxxxx> wrote: > >>>> > >>>> On 7/26/22 20:50, Rob Clark wrote: > >>>>> +/** > >>>>> + * drm_gem_lru_remove - remove object from whatever LRU it is in > >>>>> + * > >>>>> + * If the object is currently in any LRU, remove it. > >>>>> + * > >>>>> + * @obj: The GEM object to remove from current LRU > >>>>> + */ > >>>>> +void > >>>>> +drm_gem_lru_remove(struct drm_gem_object *obj) > >>>>> +{ > >>>>> + struct drm_gem_lru *lru = obj->lru; > >>>>> + > >>>>> + if (!lru) > >>>>> + return; > >>>>> + > >>>>> + mutex_lock(lru->lock); > >>>>> + lru_remove(obj); > >>>>> + mutex_unlock(lru->lock); > >>>>> +} > >>>>> +EXPORT_SYMBOL(drm_gem_lru_remove); > >>>> > >>>> I made a preliminary port of the DRM-SHMEM shrinker on top of the the > >>>> latest version of dma-buf locking convention and yours LRU patches. It > >>>> all works good, the only thing that is missing for the DRM-SHMEM > >>>> shrinker is the drm_gem_lru_remove_locked(). > >>>> > >>>> What about to add a locked variant of drm_gem_lru_remove()? > >>> > >>> Sounds fine to me.. the only reason it didn't exist yet was because it > >>> wasn't needed yet.. > >> > >> There is no use for the drm_gem_lru_move_tail_locked() as well, you're > >> not using it in the MSM driver. Hence I thought it might be good to add > >> the drm_gem_lru_remove_locked(), or maybe the > >> drm_gem_lru_move_tail_locked() should be dropped then? > >> > >>> I can respin w/ an addition of a _locked() version, or you can add it > >>> on top in your patchset. Either is fine by me > >> > >> The either option is fine by me too. If you'll keep the unused > >> drm_gem_lru_move_tail_locked(), then will be nice to add > >> drm_gem_lru_remove_locked(). > >> > > > > The drm_gem_lru_move_tail_locked() will be needed by DRM-SHMEM shrinker, > > BTW. > > On the other hand, I see now that DRM-SHMEM shrinker can use the > unlocked versions only. Hence both drm_gem_lru_move_tail_locked() and > drm_gem_lru_remove_locked() aren't needed. drm_gem_lru_move_tail_locked() is used internally, but I guess it could be made static since there ended up not being external users (yet?) I could see _move_tail_locked() being useful for a driver that wanted to bulk update a bunch of GEM objs, for ex. all the bo's associated with a submit/job. BR, -R