]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Stop disabling interrupts in scheduler fastpaths
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 7 Oct 2015 16:10:48 +0000 (09:10 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 4 Dec 2015 20:27:31 +0000 (12:27 -0800)
commita119c63fabe2901f9e5162603c5230b263689d40
tree37e726508f20e8dd951f04dd3266be912abc5b44
parenta52e16f401468d9a273160b174e8b0114da4de49
rcu: Stop disabling interrupts in scheduler fastpaths

We need the scheduler's fastpaths to be, well, fast, and unnecessarily
disabling and re-enabling interrupts is not necessarily consistent with
this goal.  Especially given that there are regions of the scheduler that
already have interrupts disabled.

This commit therefore moves the call to rcu_note_context_switch()
to one of the interrupts-disabled regions of the scheduler, and
removes the now-redundant disabling and re-enabling of interrupts from
rcu_note_context_switch() and the functions it calls.

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
[ paulmck: Shift rcu_note_context_switch() to avoid deadlock, as suggested
  by Peter Zijlstra. ]
include/linux/rcutree.h
kernel/rcu/tree.c
kernel/rcu/tree_plugin.h
kernel/sched/core.c