]> asedeno.scripts.mit.edu Git - linux.git/commit
rcu: Motivate Tiny RCU forward progress
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 20 Jul 2018 21:18:23 +0000 (14:18 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 30 Aug 2018 23:03:41 +0000 (16:03 -0700)
commitc5bacd94173ec49d7dce7ac7c64bbdde3a6e69ae
treebbce90adbbad59d273e8cc250597ec5af5747476
parentc116dba68d19246639e4fdb8c75756c67d6d268f
rcu: Motivate Tiny RCU forward progress

If a long-running CPU-bound in-kernel task invokes call_rcu(), the
callback won't be invoked until the next context switch.  If there are
no other runnable tasks (which is not an uncommon situation on deep
embedded systems), the callback might never be invoked.

This commit therefore causes rcu_check_callbacks() to ask the scheduler
for a context switch if there are callbacks posted that are still waiting
for a grace period.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tiny.c