summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.ibm.com>2019-06-01 14:14:47 +0200
committerPaul E. McKenney <paulmck@linux.ibm.com>2019-08-13 23:35:49 +0200
commit9fcb09bddd56bae42319b606bae86e85c625f868 (patch)
tree89cccab3be8d16aaf2991239b8f03b18afdb9629 /kernel/rcu
parentrcu/nocb: Avoid ->nocb_lock capture by corresponding CPU (diff)
downloadlinux-9fcb09bddd56bae42319b606bae86e85c625f868.tar.xz
linux-9fcb09bddd56bae42319b606bae86e85c625f868.zip
rcu/nocb: Round down for number of no-CBs grace-period kthreads
Currently, when the square root of the number of CPUs is rounded down by int_sqrt(), this round-down is applied to the number of callback kthreads per grace-period kthreads. This makes almost no difference for large systems, but results in oddities such as three no-CBs grace-period kthreads for a five-CPU system, which is a bit excessive. This commit therefore causes the round-down to apply to the number of no-CBs grace-period kthreads, so that systems with from four to eight CPUs have only two no-CBs grace period kthreads. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tree_plugin.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 5f0894cec75d..12212764ecd8 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -2028,7 +2028,7 @@ static void __init rcu_organize_nocb_kthreads(void)
if (!cpumask_available(rcu_nocb_mask))
return;
if (ls == -1) {
- ls = int_sqrt(nr_cpu_ids);
+ ls = nr_cpu_ids / int_sqrt(nr_cpu_ids);
rcu_nocb_gp_stride = ls;
}