aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/timers/NO_HZ.txt
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-05-13 13:32:10 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-06-10 16:42:38 -0400
commitce5f4fc861e84739289c187f147040e6af6599b2 (patch)
treeac365ac7c98ed8dcd67c445c6efff96057fd271b /Documentation/timers/NO_HZ.txt
parent295fde89be1b7dce874c0f38d8bb78975a25d46e (diff)
nohz_full: Document additional restrictions
This commit calls out the potential for slowing the tick even when there are multiple runnable processes per CPU, It also points out that current mainlined version keeps the tick going on at least one CPU even when all CPUs are otherwise idle. Finally, it notes the need for a 1-HZ tick in order to calculate CPU load, maintain sched average, compute CFS entity vruntime, compute avenrun, and carry out load balancing. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation/timers/NO_HZ.txt')
-rw-r--r--Documentation/timers/NO_HZ.txt21
1 files changed, 18 insertions, 3 deletions
diff --git a/Documentation/timers/NO_HZ.txt b/Documentation/timers/NO_HZ.txt
index d5323e075550..88697584242b 100644
--- a/Documentation/timers/NO_HZ.txt
+++ b/Documentation/timers/NO_HZ.txt
@@ -278,6 +278,11 @@ o Adaptive-ticks does not do anything unless there is only one
278 single runnable SCHED_FIFO task and multiple runnable SCHED_OTHER 278 single runnable SCHED_FIFO task and multiple runnable SCHED_OTHER
279 tasks, even though these interrupts are unnecessary. 279 tasks, even though these interrupts are unnecessary.
280 280
281 And even when there are multiple runnable tasks on a given CPU,
282 there is little point in interrupting that CPU until the current
283 running task's timeslice expires, which is almost always way
284 longer than the time of the next scheduling-clock interrupt.
285
281 Better handling of these sorts of situations is future work. 286 Better handling of these sorts of situations is future work.
282 287
283o A reboot is required to reconfigure both adaptive idle and RCU 288o A reboot is required to reconfigure both adaptive idle and RCU
@@ -308,6 +313,16 @@ o Unless all CPUs are idle, at least one CPU must keep the
308 scheduling-clock interrupt going in order to support accurate 313 scheduling-clock interrupt going in order to support accurate
309 timekeeping. 314 timekeeping.
310 315
311o If there are adaptive-ticks CPUs, there will be at least one 316o If there might potentially be some adaptive-ticks CPUs, there
312 CPU keeping the scheduling-clock interrupt going, even if all 317 will be at least one CPU keeping the scheduling-clock interrupt
313 CPUs are otherwise idle. 318 going, even if all CPUs are otherwise idle.
319
320 Better handling of this situation is ongoing work.
321
322o Some process-handling operations still require the occasional
323 scheduling-clock tick. These operations include calculating CPU
324 load, maintaining sched average, computing CFS entity vruntime,
325 computing avenrun, and carrying out load balancing. They are
326 currently accommodated by scheduling-clock tick every second
327 or so. On-going work will eliminate the need even for these
328 infrequent scheduling-clock ticks.