[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1423167832-17609-3-git-send-email-riel@redhat.com>
Date: Thu, 5 Feb 2015 15:23:49 -0500
From: riel@...hat.com
To: kvm@...r.kernel.org
Cc: borntraeger@...ibm.com, linux-kernel@...r.kernel.org,
mtosatti@...hat.com, mingo@...nel.orgm, ak@...ux.intel.com,
oleg@...hat.com, masami.hiramatsu.pt@...achi.com,
fweisbec@...il.com, paulmck@...ux.vnet.ibm.com,
lcapitulino@...hat.com, pbonzini@...hat.com
Subject: [PATCH 2/5] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER
From: Rik van Riel <riel@...hat.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@...hat.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists