|
@@ -238,6 +238,98 @@ config AUDIT_TREE
|
|
|
def_bool y
|
|
|
depends on AUDITSYSCALL && INOTIFY
|
|
|
|
|
|
+menu "RCU Subsystem"
|
|
|
+
|
|
|
+choice
|
|
|
+ prompt "RCU Implementation"
|
|
|
+ default CLASSIC_RCU
|
|
|
+
|
|
|
+config CLASSIC_RCU
|
|
|
+ bool "Classic RCU"
|
|
|
+ help
|
|
|
+ This option selects the classic RCU implementation that is
|
|
|
+ designed for best read-side performance on non-realtime
|
|
|
+ systems.
|
|
|
+
|
|
|
+ Select this option if you are unsure.
|
|
|
+
|
|
|
+config TREE_RCU
|
|
|
+ bool "Tree-based hierarchical RCU"
|
|
|
+ help
|
|
|
+ This option selects the RCU implementation that is
|
|
|
+ designed for very large SMP system with hundreds or
|
|
|
+ thousands of CPUs.
|
|
|
+
|
|
|
+config PREEMPT_RCU
|
|
|
+ bool "Preemptible RCU"
|
|
|
+ depends on PREEMPT
|
|
|
+ help
|
|
|
+ This option reduces the latency of the kernel by making certain
|
|
|
+ RCU sections preemptible. Normally RCU code is non-preemptible, if
|
|
|
+ this option is selected then read-only RCU sections become
|
|
|
+ preemptible. This helps latency, but may expose bugs due to
|
|
|
+ now-naive assumptions about each RCU read-side critical section
|
|
|
+ remaining on a given CPU through its execution.
|
|
|
+
|
|
|
+endchoice
|
|
|
+
|
|
|
+config RCU_TRACE
|
|
|
+ bool "Enable tracing for RCU"
|
|
|
+ depends on TREE_RCU || PREEMPT_RCU
|
|
|
+ help
|
|
|
+ This option provides tracing in RCU which presents stats
|
|
|
+ in debugfs for debugging RCU implementation.
|
|
|
+
|
|
|
+ Say Y here if you want to enable RCU tracing
|
|
|
+ Say N if you are unsure.
|
|
|
+
|
|
|
+config RCU_FANOUT
|
|
|
+ int "Tree-based hierarchical RCU fanout value"
|
|
|
+ range 2 64 if 64BIT
|
|
|
+ range 2 32 if !64BIT
|
|
|
+ depends on TREE_RCU
|
|
|
+ default 64 if 64BIT
|
|
|
+ default 32 if !64BIT
|
|
|
+ help
|
|
|
+ This option controls the fanout of hierarchical implementations
|
|
|
+ of RCU, allowing RCU to work efficiently on machines with
|
|
|
+ large numbers of CPUs. This value must be at least the cube
|
|
|
+ root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
|
|
|
+ systems and up to 262,144 for 64-bit systems.
|
|
|
+
|
|
|
+ Select a specific number if testing RCU itself.
|
|
|
+ Take the default if unsure.
|
|
|
+
|
|
|
+config RCU_FANOUT_EXACT
|
|
|
+ bool "Disable tree-based hierarchical RCU auto-balancing"
|
|
|
+ depends on TREE_RCU
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ This option forces use of the exact RCU_FANOUT value specified,
|
|
|
+ regardless of imbalances in the hierarchy. This is useful for
|
|
|
+ testing RCU itself, and might one day be useful on systems with
|
|
|
+ strong NUMA behavior.
|
|
|
+
|
|
|
+ Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
|
|
|
+
|
|
|
+ Say N if unsure.
|
|
|
+
|
|
|
+config TREE_RCU_TRACE
|
|
|
+ def_bool RCU_TRACE && TREE_RCU
|
|
|
+ select DEBUG_FS
|
|
|
+ help
|
|
|
+ This option provides tracing for the TREE_RCU implementation,
|
|
|
+ permitting Makefile to trivially select kernel/rcutree_trace.c.
|
|
|
+
|
|
|
+config PREEMPT_RCU_TRACE
|
|
|
+ def_bool RCU_TRACE && PREEMPT_RCU
|
|
|
+ select DEBUG_FS
|
|
|
+ help
|
|
|
+ This option provides tracing for the PREEMPT_RCU implementation,
|
|
|
+ permitting Makefile to trivially select kernel/rcupreempt_trace.c.
|
|
|
+
|
|
|
+endmenu # "RCU Subsystem"
|
|
|
+
|
|
|
config IKCONFIG
|
|
|
tristate "Kernel .config support"
|
|
|
---help---
|
|
@@ -973,90 +1065,3 @@ source "block/Kconfig"
|
|
|
config PREEMPT_NOTIFIERS
|
|
|
bool
|
|
|
|
|
|
-choice
|
|
|
- prompt "RCU Implementation"
|
|
|
- default CLASSIC_RCU
|
|
|
-
|
|
|
-config CLASSIC_RCU
|
|
|
- bool "Classic RCU"
|
|
|
- help
|
|
|
- This option selects the classic RCU implementation that is
|
|
|
- designed for best read-side performance on non-realtime
|
|
|
- systems.
|
|
|
-
|
|
|
- Select this option if you are unsure.
|
|
|
-
|
|
|
-config TREE_RCU
|
|
|
- bool "Tree-based hierarchical RCU"
|
|
|
- help
|
|
|
- This option selects the RCU implementation that is
|
|
|
- designed for very large SMP system with hundreds or
|
|
|
- thousands of CPUs.
|
|
|
-
|
|
|
-config PREEMPT_RCU
|
|
|
- bool "Preemptible RCU"
|
|
|
- depends on PREEMPT
|
|
|
- help
|
|
|
- This option reduces the latency of the kernel by making certain
|
|
|
- RCU sections preemptible. Normally RCU code is non-preemptible, if
|
|
|
- this option is selected then read-only RCU sections become
|
|
|
- preemptible. This helps latency, but may expose bugs due to
|
|
|
- now-naive assumptions about each RCU read-side critical section
|
|
|
- remaining on a given CPU through its execution.
|
|
|
-
|
|
|
-endchoice
|
|
|
-
|
|
|
-config RCU_TRACE
|
|
|
- bool "Enable tracing for RCU"
|
|
|
- depends on TREE_RCU || PREEMPT_RCU
|
|
|
- help
|
|
|
- This option provides tracing in RCU which presents stats
|
|
|
- in debugfs for debugging RCU implementation.
|
|
|
-
|
|
|
- Say Y here if you want to enable RCU tracing
|
|
|
- Say N if you are unsure.
|
|
|
-
|
|
|
-config RCU_FANOUT
|
|
|
- int "Tree-based hierarchical RCU fanout value"
|
|
|
- range 2 64 if 64BIT
|
|
|
- range 2 32 if !64BIT
|
|
|
- depends on TREE_RCU
|
|
|
- default 64 if 64BIT
|
|
|
- default 32 if !64BIT
|
|
|
- help
|
|
|
- This option controls the fanout of hierarchical implementations
|
|
|
- of RCU, allowing RCU to work efficiently on machines with
|
|
|
- large numbers of CPUs. This value must be at least the cube
|
|
|
- root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
|
|
|
- systems and up to 262,144 for 64-bit systems.
|
|
|
-
|
|
|
- Select a specific number if testing RCU itself.
|
|
|
- Take the default if unsure.
|
|
|
-
|
|
|
-config RCU_FANOUT_EXACT
|
|
|
- bool "Disable tree-based hierarchical RCU auto-balancing"
|
|
|
- depends on TREE_RCU
|
|
|
- default n
|
|
|
- help
|
|
|
- This option forces use of the exact RCU_FANOUT value specified,
|
|
|
- regardless of imbalances in the hierarchy. This is useful for
|
|
|
- testing RCU itself, and might one day be useful on systems with
|
|
|
- strong NUMA behavior.
|
|
|
-
|
|
|
- Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
|
|
|
-
|
|
|
- Say N if unsure.
|
|
|
-
|
|
|
-config TREE_RCU_TRACE
|
|
|
- def_bool RCU_TRACE && TREE_RCU
|
|
|
- select DEBUG_FS
|
|
|
- help
|
|
|
- This option provides tracing for the TREE_RCU implementation,
|
|
|
- permitting Makefile to trivially select kernel/rcutree_trace.c.
|
|
|
-
|
|
|
-config PREEMPT_RCU_TRACE
|
|
|
- def_bool RCU_TRACE && PREEMPT_RCU
|
|
|
- select DEBUG_FS
|
|
|
- help
|
|
|
- This option provides tracing for the PREEMPT_RCU implementation,
|
|
|
- permitting Makefile to trivially select kernel/rcupreempt_trace.c.
|