]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Move PREEMPT_RCU preemption to switch_to() invocation
authorPaul E. McKenney <paul.mckenney@linaro.org>
Tue, 27 Mar 2012 23:02:08 +0000 (16:02 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 2 May 2012 21:43:23 +0000 (14:43 -0700)
commit3424519ab954b866b1c936b147a87cc82371559c
tree1339bc7b3bef920b4641a5af2f182e9dfa2a6632
parent955374d25137c391eaf05569ccd747c346cb6db6
rcu: Move PREEMPT_RCU preemption to switch_to() invocation

Currently, PREEMPT_RCU readers are enqueued upon entry to the scheduler.
This is inefficient because enqueuing is required only if there is a
context switch, and entry to the scheduler does not guarantee a context
switch.

The commit therefore moves the enqueuing to immediately precede the
call to switch_to() from the scheduler.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/um/drivers/mconsole_kern.c
include/linux/rcupdate.h
include/linux/rcutiny.h
include/linux/sched.h
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h
kernel/sched/core.c