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

    From Prarit Bhargava@21:1/5 to Prarit Bhargava on Mon Oct 2 22:50:12 2017
    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@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: x86@kernel.org
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Piotr Luc <piotr.luc@intel.com>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: He Chen <he.chen@linux.intel.com>
    Cc: Mathias Krause <minipli@googlemail.com>
    Cc: Tim Chen <tim.c.chen@linux.intel.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>

    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(-)


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)