diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-12-25 03:31:28 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-12-25 03:31:28 -0500 |
| commit | 12d79bafb75639f406a9f71aab94808c414c836e (patch) | |
| tree | 2d7ba81720be2ec8c897dd3ab6781cccd973249c /init | |
| parent | 64db4cfff99c04cd5f550357edcc8780f96b54a2 (diff) | |
rcu: provide RCU options on non-preempt architectures too
Impact: build fix
Some old architectures still do not use kernel/Kconfig.preempt, so the
moving of the RCU options there broke their build:
In file included from /home/mingo/tip/include/linux/sem.h:81,
from /home/mingo/tip/include/linux/sched.h:69,
from /home/mingo/tip/arch/alpha/kernel/asm-offsets.c:9:
/home/mingo/tip/include/linux/rcupdate.h:62:2: error: #error "Unknown RCU implementation specified to kernel configuration"
Move these options back to init/Kconfig, which every architecture
includes.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index 9dd7958a71f0..6b0fdedf3596 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -928,6 +928,80 @@ source "block/Kconfig" | |||
| 928 | config PREEMPT_NOTIFIERS | 928 | config PREEMPT_NOTIFIERS |
| 929 | bool | 929 | bool |
| 930 | 930 | ||
| 931 | choice | ||
| 932 | prompt "RCU Implementation" | ||
| 933 | default CLASSIC_RCU | ||
| 934 | |||
| 935 | config CLASSIC_RCU | ||
| 936 | bool "Classic RCU" | ||
| 937 | help | ||
| 938 | This option selects the classic RCU implementation that is | ||
| 939 | designed for best read-side performance on non-realtime | ||
| 940 | systems. | ||
| 941 | |||
| 942 | Select this option if you are unsure. | ||
| 943 | |||
| 944 | config TREE_RCU | ||
| 945 | bool "Tree-based hierarchical RCU" | ||
| 946 | help | ||
| 947 | This option selects the RCU implementation that is | ||
| 948 | designed for very large SMP system with hundreds or | ||
| 949 | thousands of CPUs. | ||
| 950 | |||
| 951 | config PREEMPT_RCU | ||
| 952 | bool "Preemptible RCU" | ||
| 953 | depends on PREEMPT | ||
| 954 | help | ||
| 955 | This option reduces the latency of the kernel by making certain | ||
| 956 | RCU sections preemptible. Normally RCU code is non-preemptible, if | ||
| 957 | this option is selected then read-only RCU sections become | ||
| 958 | preemptible. This helps latency, but may expose bugs due to | ||
| 959 | now-naive assumptions about each RCU read-side critical section | ||
| 960 | remaining on a given CPU through its execution. | ||
| 961 | |||
| 962 | endchoice | ||
| 963 | |||
| 964 | config RCU_TRACE | ||
| 965 | bool "Enable tracing for RCU" | ||
| 966 | depends on TREE_RCU || PREEMPT_RCU | ||
| 967 | help | ||
| 968 | This option provides tracing in RCU which presents stats | ||
| 969 | in debugfs for debugging RCU implementation. | ||
| 970 | |||
| 971 | Say Y here if you want to enable RCU tracing | ||
| 972 | Say N if you are unsure. | ||
| 973 | |||
| 974 | config RCU_FANOUT | ||
| 975 | int "Tree-based hierarchical RCU fanout value" | ||
| 976 | range 2 64 if 64BIT | ||
| 977 | range 2 32 if !64BIT | ||
| 978 | depends on TREE_RCU | ||
| 979 | default 64 if 64BIT | ||
| 980 | default 32 if !64BIT | ||
| 981 | help | ||
| 982 | This option controls the fanout of hierarchical implementations | ||
| 983 | of RCU, allowing RCU to work efficiently on machines with | ||
| 984 | large numbers of CPUs. This value must be at least the cube | ||
| 985 | root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit | ||
| 986 | systems and up to 262,144 for 64-bit systems. | ||
| 987 | |||
| 988 | Select a specific number if testing RCU itself. | ||
| 989 | Take the default if unsure. | ||
| 990 | |||
| 991 | config RCU_FANOUT_EXACT | ||
| 992 | bool "Disable tree-based hierarchical RCU auto-balancing" | ||
| 993 | depends on TREE_RCU | ||
| 994 | default n | ||
| 995 | help | ||
| 996 | This option forces use of the exact RCU_FANOUT value specified, | ||
| 997 | regardless of imbalances in the hierarchy. This is useful for | ||
| 998 | testing RCU itself, and might one day be useful on systems with | ||
| 999 | strong NUMA behavior. | ||
| 1000 | |||
| 1001 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. | ||
| 1002 | |||
| 1003 | Say N if unsure. | ||
| 1004 | |||
| 931 | config TREE_RCU_TRACE | 1005 | config TREE_RCU_TRACE |
| 932 | def_bool RCU_TRACE && TREE_RCU | 1006 | def_bool RCU_TRACE && TREE_RCU |
| 933 | select DEBUG_FS | 1007 | select DEBUG_FS |
