[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1375871104-10688-7-git-send-email-laijs@cn.fujitsu.com>
Date: Wed, 7 Aug 2013 18:25:02 +0800
From: Lai Jiangshan <laijs@...fujitsu.com>
To: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Steven Rostedt <rostedt@...dmis.org>,
Peter Zijlstra <peterz@...radead.org>,
linux-kernel@...r.kernel.org
Cc: Lai Jiangshan <laijs@...fujitsu.com>,
Dipankar Sarma <dipankar@...ibm.com>
Subject: [PATCH 6/8] rcu: call rcu_read_unlock_special() in rcu_preempt_check_callbacks()
if rcu_read_unlock_special() is deferred, we can invoke it earlier
in the schedule-tick.
Signed-off-by: Lai Jiangshan <laijs@...fujitsu.com>
---
kernel/rcutree_plugin.h | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index 997b424..c9ff9f1 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -684,8 +684,11 @@ static void rcu_preempt_check_callbacks(int cpu)
{
struct task_struct *t = current;
- if (t->rcu_read_lock_nesting == 0) {
+ if (t->rcu_read_lock_nesting == 0 ||
+ t->rcu_read_lock_nesting == INT_MIN) {
rcu_preempt_qs(cpu);
+ if (t->rcu_read_unlock_special)
+ rcu_read_unlock_special(t, false);
return;
}
if (t->rcu_read_lock_nesting > 0 &&
--
1.7.4.4
--
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