All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Rik van Riel <riel@redhat.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	mtosatti@redhat.com, mingo@kernel.org, ak@linux.intel.com,
	oleg@redhat.com, masami.hiramatsu.pt@hitachi.com,
	fweisbec@gmail.com, lcapitulino@redhat.com, pbonzini@redhat.com
Subject: Re: [PATCH 4/4] kvm,rcu: use RCU extended quiescent state when running KVM guest
Date: Thu, 5 Feb 2015 11:27:04 -0800	[thread overview]
Message-ID: <20150205192704.GM5370@linux.vnet.ibm.com> (raw)
In-Reply-To: <54D3BE4B.9090301@redhat.com>

On Thu, Feb 05, 2015 at 02:02:35PM -0500, Rik van Riel wrote:
> On 02/05/2015 01:56 PM, Paul E. McKenney wrote:
> 
> > The real danger is doing neither.
> > 
> > On tick_nohz_full_cpu() CPUs, the exit-to-userspace code should invoke
> > rcu_user_enter(), which sets some per-CPU state telling RCU to ignore
> > that CPU, since it cannot possibly do host RCU read-side critical sections
> > while running a guest.
> > 
> > In contrast, a non-tick_nohz_full_cpu() CPU doesn't let RCU
> > know that it is executing in a guest or in userspace.  So the
> > rcu_virt_note_context_switch() does the notification in that case.
> 
> Looking at context_tracking.h, I see the
> function context_tracking_cpu_is_enabled().
> 
> That looks like it should do the right thing
> in this case.

Right you are -- that same check is used to guard the
context_tracking_user_enter() function's call to rcu_user_enter().

Not sure why it open-codes the check rather than invoking
context_tracking_cpu_is_enabled().  Hmmm....  One reason is that
the context_tracking_cpu_is_enabled() function isn't available in
that context, according to my compiler.  ;-)

							Thanx, Paul

  reply	other threads:[~2015-02-05 19:27 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-05 16:35 [PATCH 0/4] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest riel
2015-02-05 16:35 ` [PATCH 1/4] rcu,nohz: add state parameter to context_tracking_user_enter/exit riel
2015-02-05 16:35 ` [PATCH 2/4] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER riel
2015-02-05 16:35 ` [PATCH 3/4] nohz,kvm: export context_tracking_user_enter/exit riel
2015-02-05 16:35 ` [PATCH 4/4] kvm,rcu: use RCU extended quiescent state when running KVM guest riel
2015-02-05 16:44   ` Christian Borntraeger
2015-02-05 16:52     ` Rik van Riel
2015-02-05 17:50       ` Paul E. McKenney
2015-02-05 18:09         ` Rik van Riel
2015-02-05 18:56           ` Paul E. McKenney
2015-02-05 18:59             ` Rik van Riel
2015-02-05 19:02             ` Rik van Riel
2015-02-05 19:27               ` Paul E. McKenney [this message]
2015-02-05 20:19                 ` Rik van Riel

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=20150205192704.GM5370@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=ak@linux.intel.com \
    --cc=borntraeger@de.ibm.com \
    --cc=fweisbec@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=oleg@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@redhat.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.