From 7e135add24911a9302d9e73fe0456318ce8169fa Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Sun, 22 Aug 2021 14:50:07 +0100 Subject: [PATCH] kernel: disable CONFIG_RCU_EXPERT and friends 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 --- 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 2382e85bea9..37a7b16a25b 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 9d84571b3cf..702810413c6 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 f944f1718fa..91f137fbc3a 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 45d8f0976e4..06f5e43a6dd 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 94acb8672de..fc77a4995bd 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 54ac6a41522..126402d76cd 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 2ab42c9d709..6846fc96aa4 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 95cad157669..042f055bb23 100644 --- a/target/linux/mediatek/mt7623/config-5.10 +++ b/target/linux/mediatek/mt7623/config-5.10 @@ -509,7 +509,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 137b32a070e..4d5e50cd244 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 b846b6ed8fc..269eb2c380c 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 3b03333af08..36a3cefaf1e 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 d3c2cd985aa..0a2575adbfd 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 a99ff204479..89d318952a0 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 c2868fedbee..ce421e151a4 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 -- 2.30.2