Re: [PATCHv2] rcu: tree: correctly handle sparse possible CPUs
From: Paul E. McKenney
Date: Wed May 18 2016 - 14:42:00 EST
On Wed, May 18, 2016 at 07:15:09PM +0100, Mark Rutland wrote:
> On Wed, May 18, 2016 at 02:02:36PM +0200, Arnd Bergmann wrote:
> > It's the missing "possible_" that Mark mentioned in his reply on Friday.
>
> Actually, that was this morning. My VM on my laptop had a stale date due to
> suspend/resume of the host. :/
>
> I should be back at a real computer by Friday, and can respin the patch to fix
> the issue Andrey pointed out.
>
> Thanks for the fixup, and sorry for the confusion!
>
> Mark.
>
> > Please fold the fixup below into the patch if you want to get it to build.
> >
> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx
Thank you both!
Looking forward to the respin that covers the various issues that have
been located.
Thanx, Paul
> > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
> > index fd6b0f701bed..bb137b0ef6f3 100644
> > --- a/kernel/rcu/tree_plugin.h
> > +++ b/kernel/rcu/tree_plugin.h
> > @@ -1165,7 +1165,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
> > return;
> > if (!zalloc_cpumask_var(&cm, GFP_KERNEL))
> > return;
> > - for_each_leaf_node_cpu_bit(rnp, cpu, bit)
> > + for_each_leaf_node_possible_cpu_bit(rnp, cpu, bit)
> > if ((mask & bit) && cpu != outgoingcpu)
> > cpumask_set_cpu(cpu, cm);
> > if (cpumask_weight(cm) == 0)
> >
>