Re: [PATCH RFC tip/core/rcu] Make SRCU be once again optional

From: Nicolas Pitre
Date: Fri Apr 28 2017 - 17:51:29 EST


On Fri, 28 Apr 2017, Paul E. McKenney wrote:

> Hello, Nicolas!
>
> Saw the TTY write up LWN and figured I should send this your way.
> It should be worth about 2K compared to current -next, which gave
> up the 2K compared to v4.10. So really getting things back to where
> they were.
>
> My current plan is to push this into v4.13.

Excellent!

If every maintainer finds a way to (optionally) reduce the size of the
code they maintain by 2K then we'll get a much smaller kernel pretty
soon.

>
> Thanx, Paul
>
> ------------------------------------------------------------------------
>
> commit e01ef0529ed548c1b30206058c2b5eecbbc07998
> Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Date: Fri Apr 28 13:53:04 2017 -0700
>
> srcu: Make SRCU be once again optional
>
> Commit d160a727c40e ("srcu: Make SRCU be built by default") in response
> to build errors, which were caused by code that included srcu.h
> despite !SRCU. However, srcutiny.o is almost 2K of code, which is not
> insignificant for those attempting to run the Linux kernel on IoT devices.
> This commit therefore makes SRCU be once again optional, and adjusts
> srcu.h to allow error-free inclusion in !SRCU kernel builds.
>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Cc: Nicolas Pitre <nicolas.pitre@xxxxxxxxxx>

Acked-by: Nicolas Pitre <nico@xxxxxxxxxx>


>
> diff --git a/include/linux/srcu.h b/include/linux/srcu.h
> index 167ad8831aaf..c0143fe2e39d 100644
> --- a/include/linux/srcu.h
> +++ b/include/linux/srcu.h
> @@ -62,7 +62,7 @@ int init_srcu_struct(struct srcu_struct *sp);
> #include <linux/srcutree.h>
> #elif defined(CONFIG_CLASSIC_SRCU)
> #include <linux/srcuclassic.h>
> -#else
> +#elif defined(CONFIG_SRCU)
> #error "Unknown SRCU implementation specified to kernel configuration"
> #endif
>
> diff --git a/init/Kconfig b/init/Kconfig
> index 42a346b0df43..fe72c12e06a5 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -521,7 +521,6 @@ config RCU_EXPERT
>
> config SRCU
> bool
> - default y
> help
> This option selects the sleepable version of RCU. This version
> permits arbitrary sleeping or blocking within RCU read-side critical
>
>