[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230519190752.3297140-1-steve.wahl@hpe.com>
Date: Fri, 19 May 2023 14:07:44 -0500
From: Steve Wahl <steve.wahl@....com>
To: Steve Wahl <steve.wahl@....com>,
Dimitri Sivanich <dimitri.sivanich@....com>,
Russ Anderson <russ.anderson@....com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org
Subject: [PATCH RESEND v5 0/8] Support sub-NUMA clustering on UV
Sub-NUMA clustering (SNC) invalidates previous assumptions of a 1:1
relationship between blades, sockets, and nodes. Make changes
necessary to support this, including some general improvements along the
way.
Steve Wahl (8):
x86/platform/uv: Add platform resolving #defines for misc
GAM_MMIOH_REDIRECT*
x86/platform/uv: Introduce helper function uv_pnode_to_socket.
x86/platform/uv: Fix incorrect mask define use in calc_mmioh_map
x86/platform/uv: When searching for minimums, start at INT_MAX not
99999
x86/platform/uv: helper functions for allocating and freeing
conversion tables
x86/platform/uv: UV support for sub-NUMA clustering
x86/platform/uv: Remove remaining BUG_ON() and BUG() calls
x86/platform/uv: Update UV[23] platform code for SNC
arch/x86/include/asm/uv/uv_hub.h | 32 ++-
arch/x86/include/asm/uv/uv_mmrs.h | 18 +-
arch/x86/kernel/apic/x2apic_uv_x.c | 318 ++++++++++++++++++-----------
3 files changed, 232 insertions(+), 136 deletions(-)
--
v2: Include the subsystem name (x86/platform/uv:) on the first line of
the commit (subject line).
v3: Use return from WARN_ON_ONCE() to simplify the code, remove memory
leaks from memory allocation failure conditions, and remove an
unnecessary set of curly braces, per comments from Ingo Molnar.
v4: Testing found that some configurations required adding a check for
"uv_blade_to_node(bid) == SOCK_EMPTY" in uv_system_init_hub().
Testing also found that some uv3 configurations didn't work correctly
with the new blade number handling. The range of blade numbers is now
needed, not just the count, so calc_mmioh_map() and
boot_init_possible_blades() needed some adjustment. And a reviewer
suggested using INT_MAX instead of 999999.
v5: Break up a single patch into smaller patches and re-factor a bit to
make the changes more understandable. Unfortunately, the fundamental
change of the relationship between nodes, pnodes, and hubs touches a
lot of places that need to be changed at the same time, so patch 6 is
still rather large.
2.26.2
Powered by blists - more mailing lists