On Fri, 20 Aug 2021 14:05:27 +0200 "Christian König" <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > While unplugging a device the TTM shrinker implementation > needs a barrier to make sure that all concurrent shrink > operations are done and no other CPU is referring to a > device specific pool any more. > > Taking and releasing the shrinker semaphore on the write > side after unmapping and freeing all pages from the device > pool should make sure that no shrinker is running in > paralell. > > This allows us to avoid the contented mutex in the TTM pool > implementation for every alloc/free operation. > > v2: rework the commit message to make clear why we need this Acked-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>