Re: [GIT PULL] nohz: Enable full dynticks on guest mode

From: Ingo Molnar
Date: Mon Mar 16 2015 - 10:53:21 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> Ingo,
>
> Please pull the nohz/guest branch that can be found at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> nohz/guest
>
> This is 4.1 material.
>
> HEAD: 126a6a542446f1a49b9f3c69237c87df3eb4e6e1
>
> ---
> Some measurements showed that disabling the tick on the host while the
> guest is running can be interesting on some workloads. Indeed the
> host tick is irrelevant while vcpu runs, it consumes CPU time and cache
> for no good reasons.
>
> Full dynticks already works in every context but RCU prevents it to
> be effective outside userspace because the CPU needs to take part of
> RCU grace period completion as long as RCU may be used on it, which is
> the case in kernel context. However guest is similar to userspace and idle
> in that we know RCU is unused on such context. Therefore a CPU in
> guest/userspace/idle context can let other CPUs report its own RCU
> quiescent state on its behalf and shut down the tick safely, provided it
> isn't needed for other reasons than RCU. This is called RCU extended
> quiescent state.
>
> This was implemented for idle and userspace. This patchset now brings it
> for guest through the following steps:
>
> * Generalize the context tracking APIs to also track guest
> * Rename/sanitize a few CPP symbols accordingly
> * Report guest entry/exit to RCU and define this context area as an RCU
> extended quiescent state.
> ---
>
> Thanks,
> Frederic
> ---
>
> Rik van Riel (5):
> context_tracking: Generalize context tracking APIs to support user and guest
> context_tracking: Add stub context_tracking_is_enabled
> context_tracking: Run vtime_user_enter/exit only when state == CONTEXT_USER
> context_tracking: Export context_tracking_user_enter/exit
> kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest
>
> Frederic Weisbecker (2):
> ppc: Remove unused cpp symbols in kvm headers
> context_tracking: Rename context symbols to prepare for transition state
>
>
> arch/powerpc/include/asm/kvm_book3s.h | 4 ---
> arch/x86/kernel/traps.c | 2 +-
> include/linux/context_tracking.h | 15 +++++++--
> include/linux/context_tracking_state.h | 9 ++++--
> include/linux/kvm_host.h | 3 +-
> kernel/context_tracking.c | 59 ++++++++++++++++++++++------------
> kernel/sched/core.c | 2 +-
> 7 files changed, 61 insertions(+), 33 deletions(-)

Pulled into tip:timers/nohz, thanks a lot Frederic!

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/