lkml.org 
[lkml]   [2022]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 22/54] rcu: replace cpumask_weight with cpumask_empty where appropriate
    On Sun, Jan 23, 2022 at 10:38:53AM -0800, Yury Norov wrote:
    > In some places, RCU code calls cpumask_weight() to check if any bit of a
    > given cpumask is set. We can do it more efficiently with cpumask_empty()
    > because cpumask_empty() stops traversing the cpumask as soon as it finds
    > first set bit, while cpumask_weight() counts all bits unconditionally.
    >
    > Signed-off-by: Yury Norov <yury.norov@gmail.com>

    Good point! Queued and pushed, thank you!

    Thanx, Paul

    > ---
    > kernel/rcu/tree_nocb.h | 4 ++--
    > kernel/rcu/tree_plugin.h | 2 +-
    > 2 files changed, 3 insertions(+), 3 deletions(-)
    >
    > diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h
    > index eeafb546a7a0..f83c7b1d6110 100644
    > --- a/kernel/rcu/tree_nocb.h
    > +++ b/kernel/rcu/tree_nocb.h
    > @@ -1169,7 +1169,7 @@ void __init rcu_init_nohz(void)
    > struct rcu_data *rdp;
    >
    > #if defined(CONFIG_NO_HZ_FULL)
    > - if (tick_nohz_full_running && cpumask_weight(tick_nohz_full_mask))
    > + if (tick_nohz_full_running && !cpumask_empty(tick_nohz_full_mask))
    > need_rcu_nocb_mask = true;
    > #endif /* #if defined(CONFIG_NO_HZ_FULL) */
    >
    > @@ -1348,7 +1348,7 @@ static void __init rcu_organize_nocb_kthreads(void)
    > */
    > void rcu_bind_current_to_nocb(void)
    > {
    > - if (cpumask_available(rcu_nocb_mask) && cpumask_weight(rcu_nocb_mask))
    > + if (cpumask_available(rcu_nocb_mask) && !cpumask_empty(rcu_nocb_mask))
    > WARN_ON(sched_setaffinity(current->pid, rcu_nocb_mask));
    > }
    > EXPORT_SYMBOL_GPL(rcu_bind_current_to_nocb);
    > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
    > index c5b45c2f68a1..0dc0c8d6717c 100644
    > --- a/kernel/rcu/tree_plugin.h
    > +++ b/kernel/rcu/tree_plugin.h
    > @@ -1215,7 +1215,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
    > cpu != outgoingcpu)
    > cpumask_set_cpu(cpu, cm);
    > cpumask_and(cm, cm, housekeeping_cpumask(HK_FLAG_RCU));
    > - if (cpumask_weight(cm) == 0)
    > + if (cpumask_empty(cm))
    > cpumask_copy(cm, housekeeping_cpumask(HK_FLAG_RCU));
    > set_cpus_allowed_ptr(t, cm);
    > free_cpumask_var(cm);
    > --
    > 2.30.2
    >

    \
     
     \ /
      Last update: 2022-01-24 01:08    [W:3.262 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site