LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Alexander Graf <agraf@suse.de>,
	Luiz Capitulino <lcapitulino@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Will deacon <will.deacon@arm.com>, Rik van Riel <riel@redhat.com>
Subject: [PATCH 0/7] nohz/rcu: Consider guest context as extended quiescent state (ie: enable full nohz on guest)
Date: Thu,  5 Mar 2015 03:14:49 +0100	[thread overview]
Message-ID: <1425521696-4471-1-git-send-email-fweisbec@gmail.com> (raw)

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


             reply	other threads:[~2015-03-05  2:15 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-05  2:14 Frederic Weisbecker [this message]
2015-03-05  2:14 ` [PATCH 1/7] ppc: Remove unused cpp symbols in kvm headers Frederic Weisbecker
2015-03-05 16:06   ` Rik van Riel
2015-03-05  2:14 ` [PATCH 2/7] context_tracking: Rename context symbols to prepare for transition state Frederic Weisbecker
2015-03-05 16:07   ` Rik van Riel
2015-03-05  2:14 ` [PATCH 3/7] context_tracking: Generalize context tracking APIs to support user and guest Frederic Weisbecker
2015-03-05  2:14 ` [PATCH 4/7] context_tracking: Add stub context_tracking_is_enabled Frederic Weisbecker
2015-03-05  2:14 ` [PATCH 5/7] context_tracking: Run vtime_user_enter/exit only when state == CONTEXT_USER Frederic Weisbecker
2015-03-05  2:14 ` [PATCH 6/7] context_tracking: Export context_tracking_user_enter/exit Frederic Weisbecker
2015-03-05  2:14 ` [PATCH 7/7] kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest Frederic Weisbecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425521696-4471-1-git-send-email-fweisbec@gmail.com \
    --to=fweisbec@gmail.com \
    --cc=agraf@suse.de \
    --cc=benh@kernel.crashing.org \
    --cc=borntraeger@de.ibm.com \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mtosatti@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@redhat.com \
    --cc=will.deacon@arm.com \
    --subject='Re: [PATCH 0/7] nohz/rcu: Consider guest context as extended quiescent state (ie: enable full nohz on guest)' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).