Re: [PATCH RFC v2 02/10] mm: Make shrink_slab() lockless

Tetsuo Handa
2018-08-09T10:39:43Z

On 2018/08/09 18:21, Kirill Tkhai wrote:
> 2)SRCU. Pros are there are no the above problems; we will have completely unlocked and
> scalable shrink_slab(). We will also have a possibility to avoid unregistering delays,
> like I did for superblock shrinker. There will be full scalability.
> Cons is enabling SRCU.
>

How unregistering delays can be avoided? Since you traverse all shrinkers
using one shrinker_srcu, synchronize_srcu(&shrinker_srcu) will block
unregistering threads until longest inflight srcu_read_lock() user calls
srcu_read_unlock().

Unless you use per shrinker counter like below, I wonder whether
unregistering delays can be avoided...