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

From: Tetsuo Handa
Date: Thu Aug 09 2018 - 06:39:43 EST

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

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