aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-12-12 10:37:48 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-01-16 02:25:04 -0500
commita94844b22a2e2b9155bbc0878c507850477221c2 (patch)
treea7a9504a509d05b7b793d629bb3116a811f0c4a9 /init
parente3663b1024d1f94688e5233440ad67a9bc10b94e (diff)
rcu: Optionally run grace-period kthreads at real-time priority
Recent testing has shown that under heavy load, running RCU's grace-period kthreads at real-time priority can improve performance (according to 0day test robot) and reduce the incidence of RCU CPU stall warnings. However, most systems do just fine with the default non-realtime priorities for these kthreads, and it does not make sense to expose the entire user base to any risk stemming from this change, given that this change is of use only to a few users running extremely heavy workloads. Therefore, this commit allows users to specify realtime priorities for the grace-period kthreads, but leaves them running SCHED_OTHER by default. The realtime priority may be specified at build time via the RCU_KTHREAD_PRIO Kconfig parameter, or at boot time via the rcutree.kthread_prio parameter. Either way, 0 says to continue the default SCHED_OTHER behavior and values from 1-99 specify that priority of SCHED_FIFO behavior. Note that a value of 0 is not permitted when the RCU_BOOST Kconfig parameter is specified. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig7
1 files changed, 4 insertions, 3 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 9afb971497f4..d3ee66a6990f 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -668,9 +668,10 @@ config RCU_BOOST
668 668
669config RCU_KTHREAD_PRIO 669config RCU_KTHREAD_PRIO
670 int "Real-time priority to use for RCU worker threads" 670 int "Real-time priority to use for RCU worker threads"
671 range 1 99 671 range 1 99 if RCU_BOOST
672 depends on RCU_BOOST 672 range 0 99 if !RCU_BOOST
673 default 1 673 default 1 if RCU_BOOST
674 default 0 if !RCU_BOOST
674 help 675 help
675 This option specifies the SCHED_FIFO priority value that will be 676 This option specifies the SCHED_FIFO priority value that will be
676 assigned to the rcuc/n and rcub/n threads and is also the value 677 assigned to the rcuc/n and rcub/n threads and is also the value