Re: [PATCH] x86: skip delays during SMP initialization similar to Xen

Ingo Molnar
2015-05-14T06:44:18Z

* Len Brown <lenb@kernel.org> wrote:

> > [ 0.404369] x86: Booting SMP configuration:
> ...
> > [ 2.737884] x86: Booted up 4 nodes, 120 CPUs
> > [ 2.743758] smpboot: Total of 120 processors activated (671097.18 BogoMIPS)
> >
> > (2.743758-0.404369) = 2.339389 for all 119 processors
> > /119 = .01965873109243697478 - lets call it 19ms each
>
> For the record, the same (bare metal) box running latest tip boots
> 10ms/processor quicker
> than upstream Linux, as expected. So this 120 processor box now
> boots 1.19 seconds faster, in total.
>
> [ 0.415969] x86: Booting SMP configuration:
> ...
> [ 1.553658] x86: Booted up 4 nodes, 120 CPUs
> [ 1.559173] smpboot: Total of 120 processors activated (671182.14 BogoMIPS)
>
> 1.553658-0.415969 = 1.137689 - seconds to bring 119 processors on-line.
> ./119 = .00956041176470588235 -- 9.5ms per processor, down from 19.

Ok. I think we should be able to further speed that up.

> BTW. this time can be reduced by 7% (113 ms) by deleting
> announce_cpu():
>
> [ 1.445815] x86: Booted up 4 nodes, 120 CPUs

so that kind of info looks pretty useful, especially when there's
hangs/failures. I'm wondering what takes 113 msecs to print 120 CPUs -
that's about 1 msec per a few chars of printk produced, seems
excessive. Do you have any idea what's going on there? Does your
system print to a serial console perhaps?

Thanks,

Ingo