Messages in this thread | | | From | Prarit Bhargava <> | Subject | [PATCH 0/3 v4] Fix panic in logical packages calculation | Date | Tue, 24 Oct 2017 14:07:59 -0400 |
| |
A system booted with a small number of cores enabled per package panics because the estimate of __max_logical_packages is too low. This occurs when the total number of active cores across all packages is less than the maximum core count for a single package.
Andi noted that the logical_packages calculation wastes 128k on 64-bit x86 systems and posted patches to fix the allocation. His patches result in significant memory size savings, and I have put my fix on top of those patches.
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
This was tested by dropping the number of active cores across all packages to reproduce the bug above. Additional testing included 2 socket and 4 socket systems and hotplugging entire sockets in different order.
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: 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: 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 | 4 +- arch/x86/kernel/smpboot.c | 137 ++++++++++++----------------------- 5 files changed, 53 insertions(+), 92 deletions(-)
-- 2.15.0.rc0.39.g2f0e14e64
| |