LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: riel@redhat.com
To: kvm@vger.kernel.org
Cc: 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,
	paulmck@linux.vnet.ibm.com, lcapitulino@redhat.com,
	pbonzini@redhat.com
Subject: [PATCH 2/4] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER
Date: Thu,  5 Feb 2015 11:35:32 -0500	[thread overview]
Message-ID: <1423154134-17391-3-git-send-email-riel@redhat.com> (raw)
In-Reply-To: <1423154134-17391-1-git-send-email-riel@redhat.com>

From: Rik van Riel <riel@redhat.com>

Only run vtime_user_enter and vtime_user_exit when we are entering
or exiting user state, 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>
---
 kernel/context_tracking.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index 4c010787c9ec..97806c4deec5 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -85,7 +85,8 @@ void context_tracking_user_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)
+				vtime_user_enter(current);
 			rcu_user_enter();
 		}
 		/*
@@ -136,7 +137,8 @@ void context_tracking_user_exit(enum ctx_state state)
 			 * RCU core about that (ie: we may need the tick again).
 			 */
 			rcu_user_exit();
-			vtime_user_exit(current);
+			if (state == IN_USER)
+				vtime_user_exit(current);
 			trace_user_exit(0);
 		}
 		__this_cpu_write(context_tracking.state, IN_KERNEL);
-- 
1.9.3


  parent reply	other threads:[~2015-02-05 16:35 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 ` riel [this message]
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
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=1423154134-17391-3-git-send-email-riel@redhat.com \
    --to=riel@redhat.com \
    --cc=ak@linux.intel.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=paulmck@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --subject='Re: [PATCH 2/4] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER' \
    /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).