Re: [PATCH] x86/smpboot: Make logical package management more robust

From: Thomas Gleixner
Date: Thu Dec 08 2016 - 08:12:04 EST


On Thu, 8 Dec 2016, Peter Zijlstra wrote:
> On Thu, Dec 08, 2016 at 01:49:28PM +0100, Thomas Gleixner wrote:
> >
> > > > - if (logical_packages > __max_logical_packages) {
> > > > - pr_warn("Detected more packages (%u), then computed by BIOS data (%u).\n",
> > > > - logical_packages, __max_logical_packages);
> > > > - logical_packages_frozen = true;
> > > > - __max_logical_packages = logical_packages;
> > >
> > > So we'll never 'shrink' the initially computed max; which could result
> > > in using more memory than strictly needed, otoh it makes physical
> > > hotplug happier.
> >
> > Yes. I was debating that back and forth and at the end decided that making
> > it simple and robust is a good tradeoff vs. the slightly higher memory
> > consumption. Though on most systems that's a non issue as number of
> > possible cpus/packages is the same as the actual available ones. The insane
> > setups have to suffer - rightfully so.
>
> Don't we overestimate by a factor of 2 due to HT? That is, every single
> socket Intel box will have a max_packages of 2.
>
> Not that I care too deeply, and arguably the HT case _is_ insane because
> its impossible to tell etc..

It is insane.

And we can be smart about it for the normal, non physical hotplug case when
all available CPUs are brought up in smp_init() which is _before_ any of
the package users is initialized.

At that point we know exactly how many packages are available and we can
limit max packages to that value. Hmm?

Thanks,

tglx