mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
rcu: move Kconfig menu
Move RCU Kconfig options from top-level menu to an "RCU Subsystem" menu under the "General Setup" menu. Signed-off-by: Mike Travis <travis@sgi.com> Tested-by: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
baf48f6577
commit
c903ff8379
179
init/Kconfig
179
init/Kconfig
@ -238,6 +238,98 @@ config AUDIT_TREE
|
|||||||
def_bool y
|
def_bool y
|
||||||
depends on AUDITSYSCALL && INOTIFY
|
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
|
config IKCONFIG
|
||||||
tristate "Kernel .config support"
|
tristate "Kernel .config support"
|
||||||
---help---
|
---help---
|
||||||
@ -973,90 +1065,3 @@ source "block/Kconfig"
|
|||||||
config PREEMPT_NOTIFIERS
|
config PREEMPT_NOTIFIERS
|
||||||
bool
|
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.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user