[PATCH 1/2] kernel: disable CONFIG_RCU_EXPERT and friends

Hauke Mehrtens hauke at hauke-m.de
Sun Aug 22 06:33:50 PDT 2021


On 8/22/21 3:17 PM, Rui Salvaterra wrote:
> Based on the existing documentation [1][2], I dare anyone to demonstrate that
> we need to fine-tune these RCU parameters. The (performance) breakage potential
> for doing so is immense, so let's just please put down this loaded footgun.
> 
> Disable CONFIG_RCU_EXPERT and its dependent symbols. Additionally, remove the
> CONFIG_RCU_EXPERT symbol from the target kconfigs which contain it.
> 
> [1] https://www.kernel.org/doc/Documentation/RCU/Design/Data-Structures/Data-Structures.html
> [2] https://lwn.net/Articles/777214/
> 
> Signed-off-by: Rui Salvaterra <rsalvaterra at gmail.com>

Acked-by: Hauke Mehrtens <hauke at hauke-m.de>

> ---
>   target/linux/gemini/config-5.10              | 1 -
>   target/linux/gemini/config-5.4               | 1 -
>   target/linux/generic/config-5.10             | 7 +------
>   target/linux/generic/config-5.4              | 6 +-----
>   target/linux/ipq807x/config-default          | 1 -
>   target/linux/layerscape/armv7/config-5.4     | 1 -
>   target/linux/layerscape/armv8_64b/config-5.4 | 1 -
>   target/linux/mediatek/mt7623/config-5.10     | 1 -
>   target/linux/oxnas/ox810se/config-default    | 1 -
>   target/linux/oxnas/ox820/config-default      | 1 -
>   target/linux/rockchip/armv8/config-5.10      | 1 -
>   target/linux/rockchip/armv8/config-5.4       | 1 -
>   target/linux/tegra/config-5.10               | 1 -
>   target/linux/tegra/config-5.4                | 1 -
>   14 files changed, 2 insertions(+), 23 deletions(-)
> 
> diff --git a/target/linux/gemini/config-5.10 b/target/linux/gemini/config-5.10
> index 2382e85bea..37a7b16a25 100644
> --- a/target/linux/gemini/config-5.10
> +++ b/target/linux/gemini/config-5.10
> @@ -333,7 +333,6 @@ CONFIG_PREEMPT_RCU=y
>   CONFIG_PROC_PAGE_MONITOR=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RD_BZIP2=y
> diff --git a/target/linux/gemini/config-5.4 b/target/linux/gemini/config-5.4
> index 9d84571b3c..702810413c 100644
> --- a/target/linux/gemini/config-5.4
> +++ b/target/linux/gemini/config-5.4
> @@ -369,7 +369,6 @@ CONFIG_PREEMPT_RCU=y
>   CONFIG_PROC_PAGE_MONITOR=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RD_BZIP2=y
> diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10
> index f944f1718f..91f137fbc3 100644
> --- a/target/linux/generic/config-5.10
> +++ b/target/linux/generic/config-5.10
> @@ -4631,12 +4631,8 @@ CONFIG_PWRSEQ_SIMPLE=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=60
>   # CONFIG_RCU_EQS_DEBUG is not set
>   # CONFIG_RCU_EXPEDITE_BOOT is not set
> -CONFIG_RCU_EXPERT=y
> -CONFIG_RCU_FANOUT=32
> -CONFIG_RCU_FANOUT_LEAF=16
> -# CONFIG_RCU_FAST_NO_HZ is not set
> +# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_KTHREAD_PRIO=0
> -# CONFIG_RCU_NOCB_CPU is not set
>   # CONFIG_RCU_PERF_TEST is not set
>   # CONFIG_RCU_REF_SCALE_TEST is not set
>   # CONFIG_RCU_SCALE_TEST is not set
> @@ -5995,7 +5991,6 @@ CONFIG_SYSVIPC_SYSCTL=y
>   # CONFIG_TARGET_CORE is not set
>   # CONFIG_TASKSTATS is not set
>   # CONFIG_TASKS_RCU is not set
> -CONFIG_TASKS_TRACE_RCU_READ_MB=y
>   # CONFIG_TASK_XACCT is not set
>   # CONFIG_TC35815 is not set
>   # CONFIG_TCG_ATMEL is not set
> diff --git a/target/linux/generic/config-5.4 b/target/linux/generic/config-5.4
> index 45d8f0976e..06f5e43a6d 100644
> --- a/target/linux/generic/config-5.4
> +++ b/target/linux/generic/config-5.4
> @@ -4262,12 +4262,8 @@ CONFIG_PWRSEQ_SIMPLE=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=60
>   # CONFIG_RCU_EQS_DEBUG is not set
>   # CONFIG_RCU_EXPEDITE_BOOT is not set
> -CONFIG_RCU_EXPERT=y
> -CONFIG_RCU_FANOUT=32
> -CONFIG_RCU_FANOUT_LEAF=16
> -# CONFIG_RCU_FAST_NO_HZ is not set
> +# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_KTHREAD_PRIO=0
> -# CONFIG_RCU_NOCB_CPU is not set
>   # CONFIG_RCU_PERF_TEST is not set
>   # CONFIG_RCU_TORTURE_TEST is not set
>   CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3
> diff --git a/target/linux/ipq807x/config-default b/target/linux/ipq807x/config-default
> index 94acb8672d..fc77a4995b 100644
> --- a/target/linux/ipq807x/config-default
> +++ b/target/linux/ipq807x/config-default
> @@ -531,7 +531,6 @@ CONFIG_QUEUED_SPINLOCKS=y
>   # CONFIG_RANDOMIZE_BASE is not set
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RD_GZIP=y
> diff --git a/target/linux/layerscape/armv7/config-5.4 b/target/linux/layerscape/armv7/config-5.4
> index 54ac6a4152..126402d76c 100644
> --- a/target/linux/layerscape/armv7/config-5.4
> +++ b/target/linux/layerscape/armv7/config-5.4
> @@ -505,7 +505,6 @@ CONFIG_QORIQ_CPUFREQ=y
>   CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RD_BZIP2=y
> diff --git a/target/linux/layerscape/armv8_64b/config-5.4 b/target/linux/layerscape/armv8_64b/config-5.4
> index 2ab42c9d70..6846fc96aa 100644
> --- a/target/linux/layerscape/armv8_64b/config-5.4
> +++ b/target/linux/layerscape/armv8_64b/config-5.4
> @@ -671,7 +671,6 @@ CONFIG_RAID6_PQ=y
>   CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RD_BZIP2=y
> diff --git a/target/linux/mediatek/mt7623/config-5.10 b/target/linux/mediatek/mt7623/config-5.10
> index e4dcbc887d..26f5d2a350 100644
> --- a/target/linux/mediatek/mt7623/config-5.10
> +++ b/target/linux/mediatek/mt7623/config-5.10
> @@ -508,7 +508,6 @@ CONFIG_PWM_SYSFS=y
>   CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_REGMAP=y
> diff --git a/target/linux/oxnas/ox810se/config-default b/target/linux/oxnas/ox810se/config-default
> index 137b32a070..4d5e50cd24 100644
> --- a/target/linux/oxnas/ox810se/config-default
> +++ b/target/linux/oxnas/ox810se/config-default
> @@ -6,6 +6,5 @@ CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
>   CONFIG_EXT4_FS=y
>   CONFIG_FS_MBCACHE=y
>   CONFIG_MACH_OX810SE=y
> -# CONFIG_RCU_EXPERT is not set
>   # CONFIG_RCU_NEED_SEGCBLIST is not set
>   # CONFIG_RCU_STALL_COMMON is not set
> diff --git a/target/linux/oxnas/ox820/config-default b/target/linux/oxnas/ox820/config-default
> index b846b6ed8f..269eb2c380 100644
> --- a/target/linux/oxnas/ox820/config-default
> +++ b/target/linux/oxnas/ox820/config-default
> @@ -79,7 +79,6 @@ CONFIG_PCI_MSI_IRQ_DOMAIN=y
>   # CONFIG_PL310_ERRATA_769419 is not set
>   CONFIG_PM_SLEEP_SMP=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RFS_ACCEL=y
> diff --git a/target/linux/rockchip/armv8/config-5.10 b/target/linux/rockchip/armv8/config-5.10
> index 3b03333af0..36a3cefaf1 100644
> --- a/target/linux/rockchip/armv8/config-5.10
> +++ b/target/linux/rockchip/armv8/config-5.10
> @@ -483,7 +483,6 @@ CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   # CONFIG_RAVE_SP_CORE is not set
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RCU_TRACE=y
> diff --git a/target/linux/rockchip/armv8/config-5.4 b/target/linux/rockchip/armv8/config-5.4
> index d3c2cd985a..0a2575adbf 100644
> --- a/target/linux/rockchip/armv8/config-5.4
> +++ b/target/linux/rockchip/armv8/config-5.4
> @@ -463,7 +463,6 @@ CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   # CONFIG_RAVE_SP_CORE is not set
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_RCU_TRACE=y
> diff --git a/target/linux/tegra/config-5.10 b/target/linux/tegra/config-5.10
> index a99ff20447..89d318952a 100644
> --- a/target/linux/tegra/config-5.10
> +++ b/target/linux/tegra/config-5.10
> @@ -350,7 +350,6 @@ CONFIG_PWM_TEGRA=y
>   CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_REGMAP=y
> diff --git a/target/linux/tegra/config-5.4 b/target/linux/tegra/config-5.4
> index c2868fedbe..ce421e151a 100644
> --- a/target/linux/tegra/config-5.4
> +++ b/target/linux/tegra/config-5.4
> @@ -343,7 +343,6 @@ CONFIG_PWM_TEGRA=y
>   CONFIG_RAS=y
>   CONFIG_RATIONAL=y
>   CONFIG_RCU_CPU_STALL_TIMEOUT=21
> -# CONFIG_RCU_EXPERT is not set
>   CONFIG_RCU_NEED_SEGCBLIST=y
>   CONFIG_RCU_STALL_COMMON=y
>   CONFIG_REFCOUNT_FULL=y
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x93DD20630910B515.asc
Type: application/pgp-keys
Size: 13571 bytes
Desc: OpenPGP public key
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210822/c15ff7a3/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210822/c15ff7a3/attachment.sig>


More information about the openwrt-devel mailing list