Re: [PATCH 1/2] mm,vmscan: Kill global shrinker lock.

From: Paul E. McKenney
Date: Mon Nov 20 2017 - 13:28:47 EST


On Mon, Nov 20, 2017 at 07:56:28PM +0900, Tetsuo Handa wrote:
> Christoph Hellwig wrote:
> > On Mon, Nov 20, 2017 at 10:42:37AM +0100, Michal Hocko wrote:
> > > The patch has been dropped because allnoconfig failed to compile back
> > > then http://lkml.kernel.org/r/CAP=VYLr0rPWi1aeuk4w1On9CYRNmnEWwJgGtaX=wEvGaBURtrg@xxxxxxxxxxxxxx
> > > I have problem to find the follow up discussion though. The main
> > > argument was that SRC is not generally available and so the core
> > > kernel should rely on it.
> >
> > Paul,
> >
> > isthere any good reason to not use SRCU in the core kernel and
> > instead try to reimplement it using atomic counters?
>
> CONFIG_SRCU was added in order to save system size. There are users who run Linux on very
> small systems ( https://www.elinux.org/images/5/52/Status-of-embedded-Linux-2017-09-JJ62.pdf ).
>
> Also, atomic counters are not mandatory for shrinker case; e.g.
> http://lkml.kernel.org/r/201711161956.EBF57883.QFFMOLOVSOHJFt@xxxxxxxxxxxxxxxxxxx .

CONFIG_SRCU was indeed added in order to shrink single-CPU systems.
But many architectures are now requiring SRCU for one reason or another,
in more and more situations.

So I recently implemented a UP-only Tiny SRCU, which is quite a bit
smaller than its scalable counterpart, Tree SRCU:

text data bss dec hex filename
983 64 0 1047 417 /tmp/c/kernel/rcu/srcutiny.o

text data bss dec hex filename
6844 193 0 7037 1b7d /tmp/b/kernel/rcu/srcutree.o

So perhaps it is time to unconditionally enable SRCU?

Thanx, Paul