]> git.baikalelectronics.ru Git - kernel.git/commit
timers: Reduce future __run_timers() latency for newly emptied list
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 16 Dec 2013 18:32:01 +0000 (10:32 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 25 Feb 2014 20:39:00 +0000 (12:39 -0800)
commitf515e1c1e2ef7ec3ac69d05f86d2a2960abfacc8
treedfe05811720545e3b6a167e46f99e89ccb9e51e1
parent5e34be1d050ee4f81f64e6fce2c0bef0d1dbf0c4
timers: Reduce future __run_timers() latency for newly emptied list

The __run_timers() function currently steps through the list one jiffy at
a time in order to update the timer wheel.  However, if the timer wheel
is empty, no adjustment is needed other than updating ->timer_jiffies.
Therefore, if we just emptied the timer wheel, for example, by deleting
the last timer, we should mark the timer wheel as being up to date.
This marking will reduce (and perhaps eliminate) the jiffy-stepping that
a future __run_timers() call will need to do in response to some future
timer posting or migration.  This commit therefore catches ->timer_jiffies
for this case.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Tested-by: Mike Galbraith <bitbucket@online.de>
kernel/timer.c