> On Jul 24, 2023, at 17:43, Qi Zheng <[email protected]> wrote: > > Currently, the synchronize_shrinkers() is only used by TTM pool. It only > requires that no shrinkers run in parallel. > > After we use RCU+refcount method to implement the lockless slab shrink, > we can not use shrinker_rwsem or synchronize_rcu() to guarantee that all > shrinker invocations have seen an update before freeing memory. > > So we introduce a new pool_shrink_rwsem to implement a private > synchronize_shrinkers(), so as to achieve the same purpose. > > Signed-off-by: Qi Zheng <[email protected]> Reviewed-by: Muchun Song <[email protected]>
- [PATCH v2 25/47] dm: dynamically allocate the dm-bufio shrink... Qi Zheng
- [PATCH v2 34/47] nfsd: dynamically allocate the nfsd-client s... Qi Zheng
- [PATCH v2 35/47] nfsd: dynamically allocate the nfsd-reply sh... Qi Zheng
- [PATCH v2 41/47] mm: shrinker: remove old APIs Qi Zheng
- [PATCH v2 42/47] drm/ttm: introduce pool_shrink_rwsem Qi Zheng
- Re: [PATCH v2 42/47] drm/ttm: introduce pool_shrink_rwse... Muchun Song
- [PATCH v2 43/47] mm: shrinker: add a secondary array for shri... Qi Zheng
- [PATCH v2 44/47] mm: shrinker: make global slab shrink lockle... Qi Zheng
- [PATCH v2 45/47] mm: shrinker: make memcg slab shrink lockles... Qi Zheng
- [PATCH v2 46/47] mm: shrinker: hold write lock to reparent sh... Qi Zheng
- [PATCH v2 47/47] mm: shrinker: convert shrinker_rwsem to mute... Qi Zheng
