Re: [PATCH RFC 01/10] rcu: Make CONFIG_SRCU unconditionally enabled

From: Kirill Tkhai
Date: Wed Aug 08 2018 - 06:18:04 EST


On 08.08.2018 10:20, Michal Hocko wrote:
> On Tue 07-08-18 18:37:36, Kirill Tkhai wrote:
>> This patch kills all CONFIG_SRCU defines and
>> the code under !CONFIG_SRCU.
>
> The last time somebody tried to do this there was a pushback due to
> kernel tinyfication. So this should really give some numbers about the
> code size increase. Also why can't we make this depend on MMU. Is
> anybody else than the reclaim asking for unconditional SRCU usage?

I don't know one. The size numbers (sparc64) are:

$ size image.srcu.disabled
text data bss dec hex filename
5117546 8030506 1968104 15116156 e6a77c image.srcu.disabled
$ size image.srcu.enabled
text data bss dec hex filename
5126175 8064346 1968104 15158625 e74d61 image.srcu.enabled
The difference is: 15158625-15116156 = 42469 ~41Kb

Please, see the measurement details to my answer to Stephen.

> Btw. I totaly agree with Steven. This is a very poor changelog. It is
> trivial to see what the patch does but it is far from clear why it is
> doing that and why we cannot go other ways.
We possibly can go another way, and there is comment to [2/10] about this.
Percpu rwsem may be used instead, the only thing, it is worse, is it will
make shrink_slab() wait unregistering shrinkers, while srcu-based
implementation does not require this. This may be not a big problem.
But, if SRCU is real problem for embedded people, I really don't want they
hate me in the future because of this, so please CC someone if you know :)

Kirill