* Frederic Weisbecker wrote: > Ingo, > > Please pull the timers/nohz branch that can be found at: > > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git > timers/nohz > > It mostly contains fixes and full dynticks off-case optimizations. I believe that > distros want to enable this feature so it seems important to optimize the case > where the "nohz_full=" parameter is empty. ie: I'm trying to remove any performance > regression that comes with NO_HZ_FULL=y when the feature is not used. > > This patchset improves the current situation a lot (off-case appears to be around 11% faster > with hackbench, although I guess it may vary depending on the configuration but it should be > significantly faster in any case) now there is still some work to do: I can still observe a > remaining loss of 1.6% throughput seen with hackbench compared to CONFIG_NO_HZ_FULL=n > > Thanks, > Frederic > --- > > Frederic Weisbecker (23): > sched: Consolidate open coded preemptible() checks > context_tracing: Fix guest accounting with native vtime > vtime: Update a few comments > context_tracking: Fix runtime CPU off-case > nohz: Only enable context tracking on full dynticks CPUs > context_tracking: Remove full dynticks' hacky dependency on wide context tracking > context_tracking: Ground setup for static key use > context_tracking: Optimize main APIs off case with static key > context_tracking: Optimize guest APIs off case with static key > context_tracking: Optimize context switch off case with static keys > context_tracking: User/kernel broundary cross trace events > vtime: Remove a few unneeded generic vtime state checks > vtime: Fix racy cputime delta update > context_tracking: Split low level state headers > hardirq: Split preempt count mask definitions > m68k: hardirq_count() only need preempt_mask.h > vtime: Describe overriden functions in dedicated arch headers > vtime: Optimize full dynticks accounting off case with static keys > vtime: Always scale generic vtime accounting results > vtime: Always debug check snapshot source _before_ updating it > nohz: Rename a few state variables > nohz: Optimize full dynticks state checks with static keys > nohz: Optimize full dynticks's sched hooks with static keys > > > arch/ia64/include/asm/Kbuild | 1 + > arch/m68k/include/asm/irqflags.h | 2 +- > arch/powerpc/include/asm/Kbuild | 1 + > arch/s390/include/asm/cputime.h | 3 - > arch/s390/include/asm/vtime.h | 7 ++ > arch/s390/kernel/vtime.c | 1 + > include/linux/context_tracking.h | 120 +++++++++++++++-------------- > include/linux/context_tracking_state.h | 39 +++++++++ > include/linux/hardirq.h | 117 +---------------------------- > include/linux/preempt_mask.h | 122 +++++++++++++++++++++++++++++ > include/linux/tick.h | 45 +++++++++-- > include/linux/vtime.h | 74 ++++++++++++++++-- > include/trace/events/context_tracking.h | 58 ++++++++++++++ > init/Kconfig | 28 +++++-- > kernel/context_tracking.c | 128 ++++++++++++++++++------------- > kernel/sched/core.c | 4 +- > kernel/sched/cputime.c | 53 ++++--------- > kernel/time/Kconfig | 1 - > kernel/time/tick-sched.c | 56 ++++++-------- > 19 files changed, 534 insertions(+), 326 deletions(-) When merged to -tip it causes this build error: kernel/time/tick-sched.c:186:3: error: 'have_nohz_full_mask' undeclared (first use in this function) kernel/time/tick-sched.c:345:2: error: 'cpu' undeclared (first use in this function) config attached. I did what looked like to be an obvious conflict resolution to tick-sched.c (attached), please double check that too. While at it, mind rebasing your changes to tip:timers/urgent, which has a few nohz fixes pending as well? Thanks, Ingo