aboutsummaryrefslogtreecommitdiffstats
path: root/init/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'init/Kconfig')
-rw-r--r--init/Kconfig179
1 files changed, 92 insertions, 87 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 1e948825974c..b9d1dd222104 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -238,6 +238,98 @@ config AUDIT_TREE
238 def_bool y 238 def_bool y
239 depends on AUDITSYSCALL && INOTIFY 239 depends on AUDITSYSCALL && INOTIFY
240 240
241menu "RCU Subsystem"
242
243choice
244 prompt "RCU Implementation"
245 default CLASSIC_RCU
246
247config CLASSIC_RCU
248 bool "Classic RCU"
249 help
250 This option selects the classic RCU implementation that is
251 designed for best read-side performance on non-realtime
252 systems.
253
254 Select this option if you are unsure.
255
256config TREE_RCU
257 bool "Tree-based hierarchical RCU"
258 help
259 This option selects the RCU implementation that is
260 designed for very large SMP system with hundreds or
261 thousands of CPUs.
262
263config PREEMPT_RCU
264 bool "Preemptible RCU"
265 depends on PREEMPT
266 help
267 This option reduces the latency of the kernel by making certain
268 RCU sections preemptible. Normally RCU code is non-preemptible, if
269 this option is selected then read-only RCU sections become
270 preemptible. This helps latency, but may expose bugs due to
271 now-naive assumptions about each RCU read-side critical section
272 remaining on a given CPU through its execution.
273
274endchoice
275
276config RCU_TRACE
277 bool "Enable tracing for RCU"
278 depends on TREE_RCU || PREEMPT_RCU
279 help
280 This option provides tracing in RCU which presents stats
281 in debugfs for debugging RCU implementation.
282
283 Say Y here if you want to enable RCU tracing
284 Say N if you are unsure.
285
286config RCU_FANOUT
287 int "Tree-based hierarchical RCU fanout value"
288 range 2 64 if 64BIT
289 range 2 32 if !64BIT
290 depends on TREE_RCU
291 default 64 if 64BIT
292 default 32 if !64BIT
293 help
294 This option controls the fanout of hierarchical implementations
295 of RCU, allowing RCU to work efficiently on machines with
296 large numbers of CPUs. This value must be at least the cube
297 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
298 systems and up to 262,144 for 64-bit systems.
299
300 Select a specific number if testing RCU itself.
301 Take the default if unsure.
302
303config RCU_FANOUT_EXACT
304 bool "Disable tree-based hierarchical RCU auto-balancing"
305 depends on TREE_RCU
306 default n
307 help
308 This option forces use of the exact RCU_FANOUT value specified,
309 regardless of imbalances in the hierarchy. This is useful for
310 testing RCU itself, and might one day be useful on systems with
311 strong NUMA behavior.
312
313 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
314
315 Say N if unsure.
316
317config TREE_RCU_TRACE
318 def_bool RCU_TRACE && TREE_RCU
319 select DEBUG_FS
320 help
321 This option provides tracing for the TREE_RCU implementation,
322 permitting Makefile to trivially select kernel/rcutree_trace.c.
323
324config PREEMPT_RCU_TRACE
325 def_bool RCU_TRACE && PREEMPT_RCU
326 select DEBUG_FS
327 help
328 This option provides tracing for the PREEMPT_RCU implementation,
329 permitting Makefile to trivially select kernel/rcupreempt_trace.c.
330
331endmenu # "RCU Subsystem"
332
241config IKCONFIG 333config IKCONFIG
242 tristate "Kernel .config support" 334 tristate "Kernel .config support"
243 ---help--- 335 ---help---
@@ -980,90 +1072,3 @@ source "block/Kconfig"
980config PREEMPT_NOTIFIERS 1072config PREEMPT_NOTIFIERS
981 bool 1073 bool
982 1074
983choice
984 prompt "RCU Implementation"
985 default CLASSIC_RCU
986
987config CLASSIC_RCU
988 bool "Classic RCU"
989 help
990 This option selects the classic RCU implementation that is
991 designed for best read-side performance on non-realtime
992 systems.
993
994 Select this option if you are unsure.
995
996config TREE_RCU
997 bool "Tree-based hierarchical RCU"
998 help
999 This option selects the RCU implementation that is
1000 designed for very large SMP system with hundreds or
1001 thousands of CPUs.
1002
1003config PREEMPT_RCU
1004 bool "Preemptible RCU"
1005 depends on PREEMPT
1006 help
1007 This option reduces the latency of the kernel by making certain
1008 RCU sections preemptible. Normally RCU code is non-preemptible, if
1009 this option is selected then read-only RCU sections become
1010 preemptible. This helps latency, but may expose bugs due to
1011 now-naive assumptions about each RCU read-side critical section
1012 remaining on a given CPU through its execution.
1013
1014endchoice
1015
1016config RCU_TRACE
1017 bool "Enable tracing for RCU"
1018 depends on TREE_RCU || PREEMPT_RCU
1019 help
1020 This option provides tracing in RCU which presents stats
1021 in debugfs for debugging RCU implementation.
1022
1023 Say Y here if you want to enable RCU tracing
1024 Say N if you are unsure.
1025
1026config RCU_FANOUT
1027 int "Tree-based hierarchical RCU fanout value"
1028 range 2 64 if 64BIT
1029 range 2 32 if !64BIT
1030 depends on TREE_RCU
1031 default 64 if 64BIT
1032 default 32 if !64BIT
1033 help
1034 This option controls the fanout of hierarchical implementations
1035 of RCU, allowing RCU to work efficiently on machines with
1036 large numbers of CPUs. This value must be at least the cube
1037 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
1038 systems and up to 262,144 for 64-bit systems.
1039
1040 Select a specific number if testing RCU itself.
1041 Take the default if unsure.
1042
1043config RCU_FANOUT_EXACT
1044 bool "Disable tree-based hierarchical RCU auto-balancing"
1045 depends on TREE_RCU
1046 default n
1047 help
1048 This option forces use of the exact RCU_FANOUT value specified,
1049 regardless of imbalances in the hierarchy. This is useful for
1050 testing RCU itself, and might one day be useful on systems with
1051 strong NUMA behavior.
1052
1053 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
1054
1055 Say N if unsure.
1056
1057config TREE_RCU_TRACE
1058 def_bool RCU_TRACE && TREE_RCU
1059 select DEBUG_FS
1060 help
1061 This option provides tracing for the TREE_RCU implementation,
1062 permitting Makefile to trivially select kernel/rcutree_trace.c.
1063
1064config PREEMPT_RCU_TRACE
1065 def_bool RCU_TRACE && PREEMPT_RCU
1066 select DEBUG_FS
1067 help
1068 This option provides tracing for the PREEMPT_RCU implementation,
1069 permitting Makefile to trivially select kernel/rcupreempt_trace.c.