On Mon, Dec 13, 2021 at 02:25:30PM +0530, Neeraj Upadhyay wrote: > Hi David, > > Thanks for the review; some replies inline. > > On 12/13/2021 1:48 PM, David Woodhouse wrote: > > 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? > > > > Let me think about it; the nocb-gp and nocb-cb kthreads are grouped based on > rcu_nocb_gp_stride; whereas, boost kthreads are per rnp. So, I need to see > how we can use a common mutex for both. > > > > 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. > > Will fix in next version. I was about to ack the patch but, should we really add code that isn't going to be necessary before a long while? Thanks! > > Thanks > Neeraj > > >