[PATCH 0/7] nohz/rcu: Consider guest context as extended quiescent state (ie: enable full nohz on guest)

From: Frederic Weisbecker
Date: Wed Mar 04 2015 - 21:15:22 EST


Hi,

Rik sent out this patchset a few weeks ago. It appears to be interesting
to disable the tick on the host while the guest is running. 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 need to take part of
RCU grace period completion as long as RCU may be used, which is the
case in kernel context. However guest is similar to userspace and idle
in that we know RCU is unused in such context. As such a
guest/userspace/idle CPU can let other CPUs report its 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 brings it for
guest.

Before pushing to Ingo, I've just cleaned out a few boring details on
naming and changelogs. So I'm just posting the whole in case somebody
has a comment before doing the pull request in a few days

Thanks.

Frederic Weisbecker (2):
ppc: Remove unused cpp symbols in kvm headers
context_tracking: Rename context symbols to prepare for transition
state

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

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

--
2.1.4

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