Re: Full dynticks needs evtdesc set before marking cpu online.

From: Robin Holt
Date: Mon May 13 2013 - 10:31:12 EST


On Mon, May 13, 2013 at 04:04:45PM +0200, Thomas Gleixner wrote:
> On Mon, 13 May 2013, Robin Holt wrote:
> > On Mon, May 13, 2013 at 03:03:55PM +0200, Thomas Gleixner wrote:
> > > On Mon, 13 May 2013, Robin Holt wrote:
> > >
> > > > On Mon, May 13, 2013 at 11:21:00AM +0200, Thomas Gleixner wrote:
> > > > > On Wed, 8 May 2013, Robin Holt wrote:
> > > > >
> > > > > > Thomas,
> > > > > >
> > > > > > We are seeing failures booting medium sized machines which I think is
> > > > > > a change in expectations that dyntick put on x86's start_secondary.
> > > > > >
> > > > > > During boot of cpus, we see an occassional panic in tick_do_broadcast at
> > > > >
> > > > > http://lkml.indiana.edu/hypermail/linux/kernel/1305.0/01818.html
> > > > >
> > > > > Will hit Linus tree soon.
> > > >
> > > > I think this is really due to a sequence in start_secondary. The cpu
> > > > has been marked as online, but its evtdesc has not been initialized.
> > > > I sent a followup to this with a hack/patch.
> > >
> > > No, the real issue is that I messed up the cpumask conversion in the
> > > broadcast code, i.e. using alloc instead of zalloc, which allocated
> > > nonzeroed memory for the cpumasks, so any random bit set will crash
> > > the machine. Your patch is just papering over the issue.
> >
> > I believe I understand now. What would be the downside of moving
> > the initialization to before marking the cpu online? It seems like a
> > reasonable this to expect as well in spite of it not being the right
> > fix to the other bug.
>
> Yes, we can move it, but its not a required thing that the tick device
> is setup befor onlining.

I tested with your patch and it does fix my problem as well.

Thank your,
Robin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/