Re: [PATCH 0/3 v2 RESEND] x86/smpboot: Cleanup logical package ID

From: Prarit Bhargava
Date: Mon Oct 02 2017 - 11:13:13 EST




On 09/26/2017 08:53 AM, Prarit Bhargava wrote:
> Sending to wider audience. I originally sent this to only the people Andi
> had cc'd.

Here's an example of the panic:

smpboot: Booting Node 1, Processors #1 OK
smpboot: Package 1 of CPU 1 exceeds BIOS package data 1.
------------[ cut here ]------------
kernel BUG at arch/x86/kernel/cpu/common.c:1087!
invalid opcode: 0000 [#1] SMP
Modules linked in:
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.14.0-rc2+ #4


>
> Andi posted two patches to clean up the logical package ID, and I posted a
> bug fix for systems which boot with less than than the maximum core count.
> If I take his changes into account the code base ends up with a significant
> cleanup. I am reposting his patches here.
>
> I boot tested this using max_cpus and nr_cpus, as well as booting on
> systems which panic without the fix in 3/3.
>
> ---8<---
>
> Cleanup the logical package ID code by storing the logical package ID in
> the cpuinfo_x86 struct and calculating the maximum logical package ID
> after all the CPUs have been enumerated.
>
> Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
> Cc: Piotr Luc <piotr.luc@xxxxxxxxx>
> Cc: Kan Liang <kan.liang@xxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxx>
> Cc: Stephane Eranian <eranian@xxxxxxxxxx>
> Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
> Cc: Arvind Yadav <arvind.yadav.cs@xxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
> Cc: Tom Lendacky <thomas.lendacky@xxxxxxx>
> Cc: He Chen <he.chen@xxxxxxxxxxxxxxx>
> Cc: Mathias Krause <minipli@xxxxxxxxxxxxxx>
> Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
> Cc: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
>
> Andi Kleen (2):
> perf/x86/intel/uncore: Cache logical pkg id in uncore driver
> x86/topology: Avoid wasting 128k for package id array
>
> Prarit Bhargava (1):
> x86/smpboot: Fix __max_logical_packages estimate
>
> arch/x86/events/intel/uncore.c | 1 +
> arch/x86/events/intel/uncore.h | 1 +
> arch/x86/events/intel/uncore_snbep.c | 2 +-
> arch/x86/include/asm/processor.h | 6 +-
> arch/x86/kernel/smpboot.c | 113 +++++++++++------------------------
> 5 files changed, 42 insertions(+), 81 deletions(-)
>