This series changes the nohz full infrastructure to let subsystems notify when they have a tick dependency. Checking if we can stop the tick is thus perfomed in a push rather than a pull model, see previous iterations: http://lkml.kernel.org/r/1437669735-8786-1-git-send-email-fweis...@gmail.com
Changes here: * Reuse fetch_or() * Change posix cpu timers to a per thread and signal dependency (we may want to merge all that to thread level only) instead of global dependency. * Scheduler tick dependency now is evaluated at the CPU level instead of the task level. We don't anymore depend on the current task policy but on the whole tasks of the runqueue. That too can be further optimized. Only lightly tested, just checking for current state opinions. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git timers/core-v5 HEAD: ca9e998d0be7e6ef1ffab888436cbabf5446c865 Thanks, Frederic --- Frederic Weisbecker (7): atomic: Export fetch_or() nohz: New tick dependency mask perf: Migrate perf to use new tick dependency mask model sched: Account rr and fifo tasks separately sched: Migrate sched to use new tick dependency mask model posix-cpu-timers: Migrate to use new tick dependency mask model sched-clock: Migrate to use new tick dependency mask model include/linux/atomic.h | 18 ++++++ include/linux/perf_event.h | 6 -- include/linux/posix-timers.h | 3 - include/linux/sched.h | 11 +++- include/linux/tick.h | 21 ++++++ kernel/events/core.c | 22 ++----- kernel/sched/clock.c | 5 ++ kernel/sched/core.c | 47 ++++++-------- kernel/sched/rt.c | 34 ++++++++++ kernel/sched/sched.h | 49 ++++++++++---- kernel/time/posix-cpu-timers.c | 52 ++++----------- kernel/time/tick-sched.c | 142 +++++++++++++++++++++++++++++++++-------- kernel/time/tick-sched.h | 1 + 13 files changed, 274 insertions(+), 137 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/