diff options
-rw-r--r-- | init/Kconfig | 34 | ||||
-rw-r--r-- | kernel/Kconfig.preempt | 15 |
2 files changed, 18 insertions, 31 deletions
diff --git a/init/Kconfig b/init/Kconfig index 074ac97f55e3..a97924bc5b8d 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -865,38 +865,10 @@ source "block/Kconfig" | |||
865 | config PREEMPT_NOTIFIERS | 865 | config PREEMPT_NOTIFIERS |
866 | bool | 866 | bool |
867 | 867 | ||
868 | choice | ||
869 | prompt "RCU implementation type:" | ||
870 | default CLASSIC_RCU | ||
871 | help | ||
872 | This allows you to choose either the classic RCU implementation | ||
873 | that is designed for best read-side performance on non-realtime | ||
874 | systems, or the preemptible RCU implementation for best latency | ||
875 | on realtime systems. Note that some kernel preemption modes | ||
876 | will restrict your choice. | ||
877 | |||
878 | Select the default if you are unsure. | ||
879 | |||
880 | config CLASSIC_RCU | 868 | config CLASSIC_RCU |
881 | bool "Classic RCU" | 869 | def_bool !PREEMPT_RCU |
882 | help | 870 | help |
883 | This option selects the classic RCU implementation that is | 871 | This option selects the classic RCU implementation that is |
884 | designed for best read-side performance on non-realtime | 872 | designed for best read-side performance on non-realtime |
885 | systems. | 873 | systems. Classic RCU is the default. Note that the |
886 | 874 | PREEMPT_RCU symbol is used to select/deselect this option. | |
887 | Say Y if you are unsure. | ||
888 | |||
889 | config PREEMPT_RCU | ||
890 | bool "Preemptible RCU" | ||
891 | depends on PREEMPT | ||
892 | help | ||
893 | This option reduces the latency of the kernel by making certain | ||
894 | RCU sections preemptible. Normally RCU code is non-preemptible, if | ||
895 | this option is selected then read-only RCU sections become | ||
896 | preemptible. This helps latency, but may expose bugs due to | ||
897 | now-naive assumptions about each RCU read-side critical section | ||
898 | remaining on a given CPU through its execution. | ||
899 | |||
900 | Say N if you are unsure. | ||
901 | |||
902 | endchoice | ||
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt index 0669b70fa6a3..9fdba03dc1fc 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt | |||
@@ -52,8 +52,23 @@ config PREEMPT | |||
52 | 52 | ||
53 | endchoice | 53 | endchoice |
54 | 54 | ||
55 | config PREEMPT_RCU | ||
56 | bool "Preemptible RCU" | ||
57 | depends on PREEMPT | ||
58 | default n | ||
59 | help | ||
60 | This option reduces the latency of the kernel by making certain | ||
61 | RCU sections preemptible. Normally RCU code is non-preemptible, if | ||
62 | this option is selected then read-only RCU sections become | ||
63 | preemptible. This helps latency, but may expose bugs due to | ||
64 | now-naive assumptions about each RCU read-side critical section | ||
65 | remaining on a given CPU through its execution. | ||
66 | |||
67 | Say N if you are unsure. | ||
68 | |||
55 | config RCU_TRACE | 69 | config RCU_TRACE |
56 | bool "Enable tracing for RCU - currently stats in debugfs" | 70 | bool "Enable tracing for RCU - currently stats in debugfs" |
71 | depends on PREEMPT_RCU | ||
57 | select DEBUG_FS | 72 | select DEBUG_FS |
58 | default y | 73 | default y |
59 | help | 74 | help |