]> git.karo-electronics.de Git - karo-tx-linux.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, 25 Apr 2012 03:55:30 +0000 (20:55 -0700)
commit69483839ee5d6bb36355fb27b3e56b175457bdaf
tree1339bc7b3bef920b4641a5af2f182e9dfa2a6632
parent66f75a5d028beaf67c931435fdc3e7823125730c
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