提交 dc259acc 编写于 作者: P Paul E. McKenney

rcu: Account for rcu_all_qs() in cond_resched()

If cond_resched() returns false, then it has already invoked
rcu_all_qs().  This is also invoked (now redundantly) by
rcu_note_voluntary_context_switch().  This commit therefore changes
cond_resched_rcu_qs() to invoke rcu_note_voluntary_context_switch_lite()
instead of rcu_note_voluntary_context_switch() to avoid the redundant
invocation of rcu_all_qs().
Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
上级 f2b1760a
...@@ -197,7 +197,7 @@ static inline void exit_tasks_rcu_finish(void) { } ...@@ -197,7 +197,7 @@ static inline void exit_tasks_rcu_finish(void) { }
#define cond_resched_rcu_qs() \ #define cond_resched_rcu_qs() \
do { \ do { \
if (!cond_resched()) \ if (!cond_resched()) \
rcu_note_voluntary_context_switch(current); \ rcu_note_voluntary_context_switch_lite(current); \
} while (0) } while (0)
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册