From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: riel@redhat.com
Cc: fweisbec@gmail.com, luto@amacapital.net, will.deacon@arm.com,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
mtosatti@redhat.com, borntraeger@de.ibm.com,
lcapitulino@redhat.com, pbonzini@redhat.com
Subject: Re: [PATCH 3/5] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER
Date: Tue, 10 Feb 2015 13:35:59 -0800 [thread overview]
Message-ID: <20150210213559.GZ4166@linux.vnet.ibm.com> (raw)
In-Reply-To: <1423600074-2907-4-git-send-email-riel@redhat.com>
On Tue, Feb 10, 2015 at 03:27:52PM -0500, riel@redhat.com wrote:
> From: Rik van Riel <riel@redhat.com>
>
> Only run vtime_user_enter, vtime_user_exit, and the user enter & exit
> trace points when we are entering or exiting user state, respectively.
>
> The KVM code in guest_enter and guest_exit already take care of calling
> vtime_guest_enter and vtime_guest_exit, respectively.
>
> The RCU code only distinguishes between "idle" and "not idle or kernel".
> There should be no need to add an additional (unused) state there.
>
> Signed-off-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> ---
> kernel/context_tracking.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
> index 38e38aeac8b9..0e4e318d5ea4 100644
> --- a/kernel/context_tracking.c
> +++ b/kernel/context_tracking.c
> @@ -77,7 +77,6 @@ void context_tracking_enter(enum ctx_state state)
> local_irq_save(flags);
> if ( __this_cpu_read(context_tracking.state) != state) {
> if (__this_cpu_read(context_tracking.active)) {
> - trace_user_enter(0);
> /*
> * At this stage, only low level arch entry code remains and
> * then we'll run in userspace. We can assume there won't be
> @@ -85,7 +84,10 @@ void context_tracking_enter(enum ctx_state state)
> * user_exit() or rcu_irq_enter(). Let's remove RCU's dependency
> * on the tick.
> */
> - vtime_user_enter(current);
> + if (state == IN_USER) {
> + trace_user_enter(0);
> + vtime_user_enter(current);
> + }
> rcu_user_enter();
> }
> /*
> @@ -143,8 +145,10 @@ void context_tracking_exit(enum ctx_state state)
> * RCU core about that (ie: we may need the tick again).
> */
> rcu_user_exit();
> - vtime_user_exit(current);
> - trace_user_exit(0);
> + if (state == IN_USER) {
> + vtime_user_exit(current);
> + trace_user_exit(0);
> + }
> }
> __this_cpu_write(context_tracking.state, IN_KERNEL);
> }
> --
> 1.9.3
>
next prev parent reply other threads:[~2015-02-10 21:35 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-10 20:27 [PATCH -v5 0/5] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest riel
2015-02-10 20:27 ` [PATCH 1/5] context_tracking: generalize context tracking APIs to support user and guest riel
2015-02-10 21:28 ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 2/5] nohz: add stub context_tracking_is_enabled riel
2015-02-10 21:29 ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 3/5] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER riel
2015-02-10 21:35 ` Paul E. McKenney [this message]
2015-02-10 20:27 ` [PATCH 4/5] nohz,kvm: export context_tracking_user_enter/exit riel
2015-02-10 21:36 ` Paul E. McKenney
2015-02-10 20:27 ` [PATCH 5/5] kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest riel
2015-02-10 21:42 ` Paul E. McKenney
2015-02-11 19:43 ` [PATCH -v5 6/5] context_tracking: fix exception_enter when already in IN_KERNEL Rik van Riel
2015-02-11 21:27 ` Paul E. McKenney
2015-02-12 15:42 ` Frederic Weisbecker
2015-02-12 15:47 ` Rik van Riel
2015-02-12 17:00 ` Frederic Weisbecker
2015-02-12 17:48 ` Rik van Riel
2015-02-12 17:09 ` [PATCH -v5 0/5] rcu,nohz,kvm: 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=20150210213559.GZ4166@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.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=luto@amacapital.net \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=riel@redhat.com \
--cc=will.deacon@arm.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.