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

From: Frederic Weisbecker
Date: Tue Mar 10 2015 - 10:37:38 EST


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(-)
--
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/