aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/kernel-parameters.txt
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2012-08-20 00:35:53 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-11-16 13:05:56 -0500
commit3fbfbf7a3b66ec424042d909f14ba2ddf4372ea8 (patch)
treecc364c320a6e23927ecc154a8ef8021dc7d1a9e8 /Documentation/kernel-parameters.txt
parentaac1cda34b84a9411d6b8d18c3658f094c834911 (diff)
rcu: Add callback-free CPUs
RCU callback execution can add significant OS jitter and also can degrade both scheduling latency and, in asymmetric multiprocessors, energy efficiency. This commit therefore adds the ability for selected CPUs ("rcu_nocbs=" boot parameter) to have their callbacks offloaded to kthreads. If the "rcu_nocb_poll" boot parameter is also specified, these kthreads will do polling, removing the need for the offloaded CPUs to do wakeups. At least one CPU must be doing normal callback processing: currently CPU 0 cannot be selected as a no-CBs CPU. In addition, attempts to offline the last normal-CBs CPU will fail. This feature was inspired by Jim Houston's and Joe Korty's JRCU, and this commit includes fixes to problems located by Fengguang Wu's kbuild test robot. [ paulmck: Added gfp.h include file as suggested by Fengguang Wu. ] Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/kernel-parameters.txt')
-rw-r--r--Documentation/kernel-parameters.txt21
1 files changed, 21 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 9776f068306b..9d2e5cb3a95f 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2394,6 +2394,27 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2394 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 2394 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
2395 See Documentation/blockdev/ramdisk.txt. 2395 See Documentation/blockdev/ramdisk.txt.
2396 2396
2397 rcu_nocbs= [KNL,BOOT]
2398 In kernels built with CONFIG_RCU_NOCB_CPU=y, set
2399 the specified list of CPUs to be no-callback CPUs.
2400 Invocation of these CPUs' RCU callbacks will
2401 be offloaded to "rcuoN" kthreads created for
2402 that purpose. This reduces OS jitter on the
2403 offloaded CPUs, which can be useful for HPC and
2404 real-time workloads. It can also improve energy
2405 efficiency for asymmetric multiprocessors.
2406
2407 rcu_nocbs_poll [KNL,BOOT]
2408 Rather than requiring that offloaded CPUs
2409 (specified by rcu_nocbs= above) explicitly
2410 awaken the corresponding "rcuoN" kthreads,
2411 make these kthreads poll for callbacks.
2412 This improves the real-time response for the
2413 offloaded CPUs by relieving them of the need to
2414 wake up the corresponding kthread, but degrades
2415 energy efficiency by requiring that the kthreads
2416 periodically wake up to do the polling.
2417
2397 rcutree.blimit= [KNL,BOOT] 2418 rcutree.blimit= [KNL,BOOT]
2398 Set maximum number of finished RCU callbacks to process 2419 Set maximum number of finished RCU callbacks to process
2399 in one batch. 2420 in one batch.