Re: [PATCH] arch/x86: Fix kdump on x86 with physically hotadded CPUs

From: Thomas Gleixner
Date: Tue Oct 04 2016 - 10:40:58 EST

On Tue, 4 Oct 2016, Prarit Bhargava wrote:
> On 10/04/2016 06:58 AM, Thomas Gleixner wrote:
> > While it is the right thing to initialize the package map in that case, it
> > still papers over a robustness issue in the uncore code, which needs to be
> > fixed first.
> I will include a separate patch with an error check for pkg == 0xffff in the
> uncore code.

0xffff? That won't help. The id returned is -1 if the entry is not
initialized. And aside of that just patching that particular place is not
helping as the uncore code and also rapl is relying on the package map
being populated.

So we need a sanity check in the initialization code which prevents any of
this being executed.

> >> + if (!num_processors) {
> >> + pr_warn("CPU 0 not enumerated in mptable or ACPI MADT\n");
> >> + num_processors = 1;
> >
> > And in this case we end up with the same problem, right?
> It occurs to me that I over thought this: I was thinking that there might exist
> a pre-ACPI (or at least a system without an MADT) x86 system that wold boot such
> that num_processors = 0. But in that case, the cpu should be listed in the
> mptables so the above should not happen. I'll change that to a BUG().

No. That's the wrong thing to do. Think SMP kernel on UP machines ...