rcu/nocb: Round down for number of no-CBs grace-period kthreads
authorPaul E. McKenney <paulmck@linux.ibm.com>
Sat, 1 Jun 2019 12:14:47 +0000 (05:14 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Tue, 13 Aug 2019 21:35:49 +0000 (14:35 -0700)
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>
kernel/rcu/tree_plugin.h

index 5f0894cec75d7a2b3b5bf28bda05bb9e35d86c62..12212764ecd8d2ae9aa157b20c2bd6a12b20db45 100644 (file)
@@ -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;
        }