Re: [EXTERNAL] [PATCH v2] rcu/nocb: Handle concurrent nocb kthreads creation

From: David Woodhouse
Date: Mon Dec 13 2021 - 03:18:40 EST


On Sat, 2021-12-11 at 22:31 +0530, Neeraj Upadhyay wrote:
> When multiple CPUs in the same nocb gp/cb group concurrently
> come online, they might try to concurrently create the same
> rcuog kthread. Fix this by using nocb gp CPU's spawn mutex to
> provide mutual exclusion for the rcuog kthread creation code.
>
> Signed-off-by: Neeraj Upadhyay <quic_neeraju@xxxxxxxxxxx>
> ---
> Change in v2:
> Fix missing mutex_unlock in nocb gp kthread creation err path.

I think this ends up being not strictly necessary in the short term too
because we aren't currently planning to run rcutree_prepare_cpu()
concurrently anyway. But harmless and worth fixing in the longer term.

Although, if I've already added a mutex for adding the boost thread,
could we manage to use the *same* mutex instead of adding another one?

Acked-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
+ mutex_unlock(&rdp_gp->nocb_gp_kthread_mutex);
> return;
> + }
> WRITE_ONCE(rdp_gp->nocb_gp_kthread, t);
> }
> + mutex_unlock(&rdp_gp->nocb_gp_kthread_mutex);
>
> /* Spawn the kthread for this CPU. */

Some whitespace damage there.

Attachment: smime.p7s
Description: S/MIME cryptographic signature