From: Dimitri Sivanich <sivanich@hpe.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
x86@kernel.org, Tom Lendacky <thomas.lendacky@amd.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Arjan van de Ven <arjan@linux.intel.com>,
"James E.J. Bottomley" <jejb@linux.ibm.com>,
Dick Kennedy <dick.kennedy@broadcom.com>,
James Smart <james.smart@broadcom.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
linux-scsi@vger.kernel.org, Guenter Roeck <linux@roeck-us.net>,
linux-hwmon@vger.kernel.org, Jean Delvare <jdelvare@suse.com>,
Huang Rui <ray.huang@amd.com>, Juergen Gross <jgross@suse.com>,
Steve Wahl <steve.wahl@hpe.com>,
Dimitri Sivanich <dimitri.sivanich@hpe.com>,
Russ Anderson <russ.anderson@hpe.com>
Subject: Re: [patch v2 00/38] x86/cpu: Rework the topology evaluation
Date: Fri, 28 Jul 2023 10:41:26 -0500 [thread overview]
Message-ID: <20230728154047.GA21214@hpe.com> (raw)
In-Reply-To: <20230728105650.565799744@linutronix.de>
I successfully booted the same 32-socket, 3840 cpu HPE Sapphire Rapids system
with the V2 update found here:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git topo-cpuid-v2
# cat /sys/kernel/debug/x86/topo/cpus/3839
initial_apicid: ff7
apicid: ff7
pkg_id: 31
die_id: 31
cu_id: 255
core_id: 59
logical_pkg_id: 31
logical_die_id: 31
llc_id: 3968
l2c_id: 4086
amd_node_id: 0
amd_nodes_per_pkg: 0
max_cores: 60
max_die_per_pkg: 1
smp_num_siblings: 2
On Fri, Jul 28, 2023 at 02:12:42PM +0200, Thomas Gleixner wrote:
> Hi!
>
> This is the follow up to V1:
>
> https://lore.kernel.org/lkml/20230724155329.474037902@linutronix.de
>
> which addresses the review feedback and some minor fallout I observed in my
> testing of the work based on top.
>
> TLDR:
>
> This reworks the way how topology information is evaluated via CPUID
> in preparation for a larger topology management overhaul to address
> shortcomings of the current code vs. hybrid systems and systems which make
> use of the extended topology domains in leaf 0x1f. Aside of that it's an
> overdue spring cleaning to get rid of accumulated layers of duct tape and
> haywire.
>
> What changed vs. V1:
>
> - Fixed an issue vs. the logical die/pkg management as the current
> code (ab)uses cpuinfo for persistant storage.
>
> - Consolidated APIC ID usage on u32 and ditched the u16 limitation
>
> - Addressed the review feedback from Peter and Arjan
>
> - Added a new patch which gets rid of XENPV fiddling in the cpuinfo
> state. That needs some testing on XENPV obviously. The relevant
> patches are #22 and #37
>
> I did not pick up any of the tested by tags yet. I hope people can run it
> once more. Neither did I add the Ack from Peter.
>
> The series is based on the APIC cleanup series:
>
> https://lore.kernel.org/lkml/20230724131206.500814398@linutronix.de
>
> and also available on top of that from git:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git topo-cpuid-v2
>
> Thanks,
>
> tglx
> ---
> Documentation/arch/x86/topology.rst | 12 -
> a/arch/x86/kernel/cpu/topology.c | 168 ---------------------
> arch/x86/events/amd/core.c | 2
> arch/x86/events/amd/uncore.c | 2
> arch/x86/events/intel/uncore.c | 2
> arch/x86/hyperv/hv_vtl.c | 2
> arch/x86/include/asm/apic.h | 32 +---
> arch/x86/include/asm/cacheinfo.h | 3
> arch/x86/include/asm/cpuid.h | 32 ++++
> arch/x86/include/asm/mpspec.h | 2
> arch/x86/include/asm/processor.h | 60 +++++--
> arch/x86/include/asm/smp.h | 4
> arch/x86/include/asm/topology.h | 51 +++++-
> arch/x86/include/asm/x86_init.h | 2
> arch/x86/kernel/acpi/boot.c | 4
> arch/x86/kernel/amd_nb.c | 8 -
> arch/x86/kernel/apic/apic.c | 14 -
> arch/x86/kernel/apic/apic_common.c | 4
> arch/x86/kernel/apic/apic_flat_64.c | 13 -
> arch/x86/kernel/apic/apic_noop.c | 9 -
> arch/x86/kernel/apic/apic_numachip.c | 21 --
> arch/x86/kernel/apic/bigsmp_32.c | 10 -
> arch/x86/kernel/apic/local.h | 6
> arch/x86/kernel/apic/probe_32.c | 10 -
> arch/x86/kernel/apic/x2apic_cluster.c | 1
> arch/x86/kernel/apic/x2apic_phys.c | 10 -
> arch/x86/kernel/apic/x2apic_uv_x.c | 67 +-------
> arch/x86/kernel/cpu/Makefile | 5
> arch/x86/kernel/cpu/amd.c | 156 --------------------
> arch/x86/kernel/cpu/cacheinfo.c | 51 ++----
> arch/x86/kernel/cpu/centaur.c | 4
> arch/x86/kernel/cpu/common.c | 111 +-------------
> arch/x86/kernel/cpu/cpu.h | 14 +
> arch/x86/kernel/cpu/hygon.c | 133 -----------------
> arch/x86/kernel/cpu/intel.c | 38 ----
> arch/x86/kernel/cpu/mce/amd.c | 4
> arch/x86/kernel/cpu/mce/apei.c | 4
> arch/x86/kernel/cpu/mce/core.c | 4
> arch/x86/kernel/cpu/mce/inject.c | 7
> arch/x86/kernel/cpu/proc.c | 8 -
> arch/x86/kernel/cpu/zhaoxin.c | 18 --
> arch/x86/kernel/kvm.c | 6
> arch/x86/kernel/sev.c | 2
> arch/x86/kernel/smpboot.c | 97 +++++++-----
> arch/x86/kernel/vsmp_64.c | 13 -
> arch/x86/mm/amdtopology.c | 35 ++--
> arch/x86/mm/numa.c | 4
> arch/x86/xen/apic.c | 14 -
> arch/x86/xen/smp_pv.c | 3
> b/arch/x86/kernel/cpu/debugfs.c | 97 ++++++++++++
> b/arch/x86/kernel/cpu/topology.h | 51 ++++++
> b/arch/x86/kernel/cpu/topology_amd.c | 179 +++++++++++++++++++++++
> b/arch/x86/kernel/cpu/topology_common.c | 233 ++++++++++++++++++++++++++++++
> b/arch/x86/kernel/cpu/topology_ext.c | 136 +++++++++++++++++
> drivers/edac/amd64_edac.c | 4
> drivers/edac/mce_amd.c | 4
> drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 2
> drivers/hwmon/fam15h_power.c | 7
> drivers/scsi/lpfc/lpfc_init.c | 8 -
> drivers/virt/acrn/hsm.c | 2
> 60 files changed, 1049 insertions(+), 956 deletions(-)
next prev parent reply other threads:[~2023-07-28 15:42 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-28 12:12 [patch v2 00/38] x86/cpu: Rework the topology evaluation Thomas Gleixner
2023-07-28 12:12 ` [patch v2 01/38] x86/cpu: Encapsulate topology information in cpuinfo_x86 Thomas Gleixner
2023-07-28 12:12 ` [patch v2 02/38] x86/cpu: Move phys_proc_id into topology info Thomas Gleixner
2023-07-28 12:12 ` [patch v2 03/38] x86/cpu: Move cpu_die_id " Thomas Gleixner
2023-07-28 12:12 ` [patch v2 04/38] scsi: lpfc: Use topology_core_id() Thomas Gleixner
2023-07-28 12:12 ` [patch v2 05/38] hwmon: (fam15h_power) " Thomas Gleixner
2023-07-28 12:12 ` [patch v2 06/38] x86/cpu: Move cpu_core_id into topology info Thomas Gleixner
2023-07-28 12:12 ` [patch v2 07/38] x86/cpu: Move cu_id " Thomas Gleixner
2023-07-28 12:12 ` [patch v2 08/38] x86/cpu: Remove pointless evaluation of x86_coreid_bits Thomas Gleixner
2023-07-28 12:12 ` [patch v2 09/38] x86/cpu: Move logical package and die IDs into topology info Thomas Gleixner
2023-07-28 12:12 ` [patch v2 10/38] x86/cpu: Move cpu_l[l2]c_id " Thomas Gleixner
2023-07-28 12:12 ` [patch v2 11/38] x86/apic: Use BAD_APICID consistently; Thomas Gleixner
2023-07-28 22:36 ` Sohil Mehta
2023-07-28 22:50 ` Thomas Gleixner
2023-07-28 12:12 ` [patch v2 12/38] x86/apic: Use u32 for APIC IDs in global data Thomas Gleixner
2023-07-28 12:12 ` [patch v2 13/38] x86/apic: Use u32 for check_apicid_used() Thomas Gleixner
2023-07-28 12:13 ` [patch v2 14/38] x86/apic: Use u32 for cpu_present_to_apicid() Thomas Gleixner
2023-07-28 12:13 ` [patch v2 15/38] x86/apic: Use u32 for phys_pkg_id() Thomas Gleixner
2023-08-08 20:14 ` Steve Wahl
2023-07-28 12:13 ` [patch v2 16/38] x86/apic: Use u32 for [gs]et_apic_id() Thomas Gleixner
2023-08-08 20:15 ` Steve Wahl
2023-07-28 12:13 ` [patch v2 17/38] x86/apic: Use u32 for wakeup_secondary_cpu[_64]() Thomas Gleixner
2023-08-08 20:15 ` Steve Wahl
2023-07-28 12:13 ` [patch v2 18/38] x86/cpu/topology: Cure the abuse of cpuinfo for persisting logical ids Thomas Gleixner
2023-07-28 12:13 ` [patch v2 19/38] x86/cpu: Provide debug interface Thomas Gleixner
2023-07-28 23:57 ` Sohil Mehta
2023-07-28 12:13 ` [patch v2 20/38] x86/cpu: Provide cpuid_read() et al Thomas Gleixner
2023-07-28 12:13 ` [patch v2 21/38] x86/cpu: Provide cpu_init/parse_topology() Thomas Gleixner
2023-07-29 0:02 ` Sohil Mehta
2023-07-31 4:05 ` Michael Kelley (LINUX)
2023-07-31 12:34 ` Thomas Gleixner
2023-07-31 13:27 ` Peter Zijlstra
2023-07-31 15:38 ` Thomas Gleixner
2023-07-31 16:10 ` Michael Kelley (LINUX)
2023-07-31 20:48 ` Thomas Gleixner
2023-07-31 21:27 ` Michael Kelley (LINUX)
2023-07-31 22:12 ` Thomas Gleixner
2023-08-01 22:25 ` Thomas Gleixner
2023-08-01 22:35 ` Andrew Cooper
2023-08-02 14:43 ` Michael Kelley (LINUX)
2023-07-31 16:25 ` Michael Kelley (LINUX)
2023-07-31 20:41 ` Thomas Gleixner
2023-07-31 13:47 ` Arjan van de Ven
2023-07-31 14:08 ` Andrew Cooper
2023-08-01 7:05 ` Gautham R. Shenoy
2023-08-01 7:34 ` Thomas Gleixner
2023-07-28 12:13 ` [patch v2 22/38] x86/cpu: Add legacy topology parser Thomas Gleixner
2023-07-28 21:33 ` [patch v2A " Thomas Gleixner
2023-07-28 12:13 ` [patch v2 23/38] x86/cpu: Use common topology code for Centaur and Zhaoxin Thomas Gleixner
2023-07-28 12:13 ` [patch v2 24/38] x86/cpu: Move __max_die_per_package to common.c Thomas Gleixner
2023-07-28 12:13 ` [patch v2 25/38] x86/cpu: Provide a sane leaf 0xb/0x1f parser Thomas Gleixner
2023-07-28 12:13 ` [patch v2 26/38] x86/cpu: Use common topology code for Intel Thomas Gleixner
2023-07-28 12:13 ` [patch v2 27/38] x86/cpu/amd: Provide a separate acessor for Node ID Thomas Gleixner
2023-07-29 0:07 ` Sohil Mehta
2023-07-28 12:13 ` [patch v2 28/38] x86/cpu: Provide an AMD/HYGON specific topology parser Thomas Gleixner
2023-07-29 0:05 ` Sohil Mehta
2023-07-30 5:20 ` Michael Kelley (LINUX)
2023-07-30 7:41 ` Thomas Gleixner
2023-07-28 12:13 ` [patch v2 29/38] x86/smpboot: Teach it about topo.amd_node_id Thomas Gleixner
2023-07-28 12:13 ` [patch v2 30/38] x86/cpu: Use common topology code for AMD Thomas Gleixner
2023-07-28 12:13 ` [patch v2 31/38] x86/cpu: Use common topology code for HYGON Thomas Gleixner
2023-07-28 12:13 ` [patch v2 32/38] x86/mm/numa: Use core domain size on AMD Thomas Gleixner
2023-07-28 12:13 ` [patch v2 33/38] x86/cpu: Make topology_amd_node_id() use the actual node info Thomas Gleixner
2023-07-28 12:13 ` [patch v2 34/38] x86/cpu: Remove topology.c Thomas Gleixner
2023-07-28 12:13 ` [patch v2 35/38] x86/cpu: Remove x86_coreid_bits Thomas Gleixner
2023-07-28 12:13 ` [patch v2 36/38] x86/apic: Remove unused phys_pkg_id() callback Thomas Gleixner
2023-08-08 20:15 ` Steve Wahl
2023-07-28 12:13 ` [patch v2 37/38] x86/xen/smp_pv: Remove cpudata fiddling Thomas Gleixner
2023-07-28 12:13 ` [patch v2 38/38] x86/apic/uv: Remove the private leaf 0xb parser Thomas Gleixner
2023-08-08 20:16 ` Steve Wahl
2023-07-28 15:41 ` Dimitri Sivanich [this message]
2023-07-28 19:01 ` [patch v2 00/38] x86/cpu: Rework the topology evaluation Sohil Mehta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230728154047.GA21214@hpe.com \
--to=sivanich@hpe.com \
--cc=andrew.cooper3@citrix.com \
--cc=arjan@linux.intel.com \
--cc=dick.kennedy@broadcom.com \
--cc=dimitri.sivanich@hpe.com \
--cc=james.smart@broadcom.com \
--cc=jdelvare@suse.com \
--cc=jejb@linux.ibm.com \
--cc=jgross@suse.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=martin.petersen@oracle.com \
--cc=ray.huang@amd.com \
--cc=russ.anderson@hpe.com \
--cc=steve.wahl@hpe.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).