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

Rui Salvaterra rsalvaterra at gmail.com
Sun Aug 22 06:50:07 PDT 2021


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>
---
v2: no changes since v1, just resending the two-patch series.

 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 2909636cfa..c6f438cfeb 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
-- 
2.33.0




More information about the openwrt-devel mailing list