diff options
Diffstat (limited to 'kernel/time/Kconfig')
-rw-r--r-- | kernel/time/Kconfig | 80 |
1 files changed, 74 insertions, 6 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index 24510d84efd7..e4c07b0692bb 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
@@ -64,20 +64,88 @@ config GENERIC_CMOS_UPDATE | |||
64 | if GENERIC_CLOCKEVENTS | 64 | if GENERIC_CLOCKEVENTS |
65 | menu "Timers subsystem" | 65 | menu "Timers subsystem" |
66 | 66 | ||
67 | # Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is | 67 | # Core internal switch. Selected by NO_HZ_COMMON / HIGH_RES_TIMERS. This is |
68 | # only related to the tick functionality. Oneshot clockevent devices | 68 | # only related to the tick functionality. Oneshot clockevent devices |
69 | # are supported independ of this. | 69 | # are supported independ of this. |
70 | config TICK_ONESHOT | 70 | config TICK_ONESHOT |
71 | bool | 71 | bool |
72 | 72 | ||
73 | config NO_HZ | 73 | config NO_HZ_COMMON |
74 | bool "Tickless System (Dynamic Ticks)" | 74 | bool |
75 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | 75 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS |
76 | select TICK_ONESHOT | 76 | select TICK_ONESHOT |
77 | |||
78 | choice | ||
79 | prompt "Timer tick handling" | ||
80 | default NO_HZ_IDLE if NO_HZ | ||
81 | |||
82 | config HZ_PERIODIC | ||
83 | bool "Periodic timer ticks (constant rate, no dynticks)" | ||
84 | help | ||
85 | This option keeps the tick running periodically at a constant | ||
86 | rate, even when the CPU doesn't need it. | ||
87 | |||
88 | config NO_HZ_IDLE | ||
89 | bool "Idle dynticks system (tickless idle)" | ||
90 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | ||
91 | select NO_HZ_COMMON | ||
92 | help | ||
93 | This option enables a tickless idle system: timer interrupts | ||
94 | will only trigger on an as-needed basis when the system is idle. | ||
95 | This is usually interesting for energy saving. | ||
96 | |||
97 | Most of the time you want to say Y here. | ||
98 | |||
99 | config NO_HZ_FULL | ||
100 | bool "Full dynticks system (tickless)" | ||
101 | # NO_HZ_COMMON dependency | ||
102 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | ||
103 | # We need at least one periodic CPU for timekeeping | ||
104 | depends on SMP | ||
105 | # RCU_USER_QS dependency | ||
106 | depends on HAVE_CONTEXT_TRACKING | ||
107 | # VIRT_CPU_ACCOUNTING_GEN dependency | ||
108 | depends on 64BIT | ||
109 | select NO_HZ_COMMON | ||
110 | select RCU_USER_QS | ||
111 | select RCU_NOCB_CPU | ||
112 | select VIRT_CPU_ACCOUNTING_GEN | ||
113 | select CONTEXT_TRACKING_FORCE | ||
114 | select IRQ_WORK | ||
115 | help | ||
116 | Adaptively try to shutdown the tick whenever possible, even when | ||
117 | the CPU is running tasks. Typically this requires running a single | ||
118 | task on the CPU. Chances for running tickless are maximized when | ||
119 | the task mostly runs in userspace and has few kernel activity. | ||
120 | |||
121 | You need to fill up the nohz_full boot parameter with the | ||
122 | desired range of dynticks CPUs. | ||
123 | |||
124 | This is implemented at the expense of some overhead in user <-> kernel | ||
125 | transitions: syscalls, exceptions and interrupts. Even when it's | ||
126 | dynamically off. | ||
127 | |||
128 | Say N. | ||
129 | |||
130 | endchoice | ||
131 | |||
132 | config NO_HZ_FULL_ALL | ||
133 | bool "Full dynticks system on all CPUs by default" | ||
134 | depends on NO_HZ_FULL | ||
135 | help | ||
136 | If the user doesn't pass the nohz_full boot option to | ||
137 | define the range of full dynticks CPUs, consider that all | ||
138 | CPUs in the system are full dynticks by default. | ||
139 | Note the boot CPU will still be kept outside the range to | ||
140 | handle the timekeeping duty. | ||
141 | |||
142 | config NO_HZ | ||
143 | bool "Old Idle dynticks config" | ||
144 | depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS | ||
77 | help | 145 | help |
78 | This option enables a tickless system: timer interrupts will | 146 | This is the old config entry that enables dynticks idle. |
79 | only trigger on an as-needed basis both when the system is | 147 | We keep it around for a little while to enforce backward |
80 | busy and when the system is idle. | 148 | compatibility with older config files. |
81 | 149 | ||
82 | config HIGH_RES_TIMERS | 150 | config HIGH_RES_TIMERS |
83 | bool "High Resolution Timer Support" | 151 | bool "High Resolution Timer Support" |