2024-01-23 12:53:45

by Thomas Gleixner

[permalink] [raw]
Subject: [patch v5 00/19] x86/cpu: Rework topology evaluation

This is a follow up on V4 of this work:

https://lore.kernel.org/all/[email protected]

and contains only the not yet applied part which reworks the CPUID
parsing. This is also preparatory work for the general overhaul of APIC ID
enumeration and management.

Changes vs. V4:

- Add DIEGRP level explicitly

This applies on Linus tree and is available from git:

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git topo-cpuid-v5

Thanks,

tglx
---
arch/x86/kernel/cpu/topology.c | 167 ----------------------
b/arch/x86/events/amd/core.c | 2
b/arch/x86/include/asm/apic.h | 1
b/arch/x86/include/asm/cpuid.h | 36 ++++
b/arch/x86/include/asm/processor.h | 5
b/arch/x86/include/asm/topology.h | 39 +++++
b/arch/x86/kernel/amd_nb.c | 4
b/arch/x86/kernel/apic/apic_flat_64.c | 7
b/arch/x86/kernel/apic/apic_noop.c | 3
b/arch/x86/kernel/apic/apic_numachip.c | 7
b/arch/x86/kernel/apic/bigsmp_32.c | 6
b/arch/x86/kernel/apic/local.h | 1
b/arch/x86/kernel/apic/probe_32.c | 6
b/arch/x86/kernel/apic/x2apic_cluster.c | 1
b/arch/x86/kernel/apic/x2apic_phys.c | 6
b/arch/x86/kernel/apic/x2apic_uv_x.c | 63 +-------
b/arch/x86/kernel/cpu/Makefile | 3
b/arch/x86/kernel/cpu/amd.c | 146 -------------------
b/arch/x86/kernel/cpu/cacheinfo.c | 6
b/arch/x86/kernel/cpu/centaur.c | 4
b/arch/x86/kernel/cpu/common.c | 91 +-----------
b/arch/x86/kernel/cpu/cpu.h | 13 -
b/arch/x86/kernel/cpu/debugfs.c | 40 +++++
b/arch/x86/kernel/cpu/hygon.c | 129 -----------------
b/arch/x86/kernel/cpu/intel.c | 25 ---
b/arch/x86/kernel/cpu/mce/amd.c | 4
b/arch/x86/kernel/cpu/mce/inject.c | 7
b/arch/x86/kernel/cpu/topology.h | 56 +++++++
b/arch/x86/kernel/cpu/topology_amd.c | 182 ++++++++++++++++++++++++
b/arch/x86/kernel/cpu/topology_common.c | 241 ++++++++++++++++++++++++++++++++
b/arch/x86/kernel/cpu/topology_ext.c | 130 +++++++++++++++++
b/arch/x86/kernel/cpu/zhaoxin.c | 4
b/arch/x86/kernel/smpboot.c | 12 +
b/arch/x86/kernel/vsmp_64.c | 13 -
b/arch/x86/mm/amdtopology.c | 35 ++--
b/arch/x86/xen/apic.c | 6
b/arch/x86/xen/smp_pv.c | 3
b/drivers/edac/amd64_edac.c | 4
b/drivers/edac/mce_amd.c | 4
39 files changed, 792 insertions(+), 720 deletions(-)




2024-01-31 07:40:29

by Zhang, Rui

[permalink] [raw]
Subject: Re: [patch v5 00/19] x86/cpu: Rework topology evaluation

Hi, Thomas,

Wendy and I have tested all the three patch sets on a couple of
platforms, except the issue raised, no other problem is observed.

Tested-by: Zhang Rui <[email protected]>
Tested-by: Wang Wendy <[email protected]>

BTW, one behavior change in this patch series is that die_id become
platform unique instead of package unique.
By my understanding, this won't break any kernel user, but we have some
redundant code left where we compare both package id and die id. for
example, in match_smt(),

if (c->topo.pkg_id == o->topo.pkg_id &&
c->topo.die_id == o->topo.die_id &&
c->topo.core_id == o->topo.core_id) {
return topology_sane(c, o, "smt");
}

thanks,
rui


On Tue, 2024-01-23 at 13:53 +0100, Thomas Gleixner wrote:
> This is a follow up on V4 of this work:
>
>   https://lore.kernel.org/all/[email protected]
>
> and contains only the not yet applied part which reworks the CPUID
> parsing. This is also preparatory work for the general overhaul of
> APIC ID
> enumeration and management.
>
> Changes vs. V4:
>
>   - Add DIEGRP level explicitly
>
> This applies on Linus tree and is available from git:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git topo-
> cpuid-v5
>
> Thanks,
>
>         tglx
> ---
>  arch/x86/kernel/cpu/topology.c          |  167 ---------------------
> -
>  b/arch/x86/events/amd/core.c            |    2
>  b/arch/x86/include/asm/apic.h           |    1
>  b/arch/x86/include/asm/cpuid.h          |   36 ++++
>  b/arch/x86/include/asm/processor.h      |    5
>  b/arch/x86/include/asm/topology.h       |   39 +++++
>  b/arch/x86/kernel/amd_nb.c              |    4
>  b/arch/x86/kernel/apic/apic_flat_64.c   |    7
>  b/arch/x86/kernel/apic/apic_noop.c      |    3
>  b/arch/x86/kernel/apic/apic_numachip.c  |    7
>  b/arch/x86/kernel/apic/bigsmp_32.c      |    6
>  b/arch/x86/kernel/apic/local.h          |    1
>  b/arch/x86/kernel/apic/probe_32.c       |    6
>  b/arch/x86/kernel/apic/x2apic_cluster.c |    1
>  b/arch/x86/kernel/apic/x2apic_phys.c    |    6
>  b/arch/x86/kernel/apic/x2apic_uv_x.c    |   63 +-------
>  b/arch/x86/kernel/cpu/Makefile          |    3
>  b/arch/x86/kernel/cpu/amd.c             |  146 -------------------
>  b/arch/x86/kernel/cpu/cacheinfo.c       |    6
>  b/arch/x86/kernel/cpu/centaur.c         |    4
>  b/arch/x86/kernel/cpu/common.c          |   91 +-----------
>  b/arch/x86/kernel/cpu/cpu.h             |   13 -
>  b/arch/x86/kernel/cpu/debugfs.c         |   40 +++++
>  b/arch/x86/kernel/cpu/hygon.c           |  129 -----------------
>  b/arch/x86/kernel/cpu/intel.c           |   25 ---
>  b/arch/x86/kernel/cpu/mce/amd.c         |    4
>  b/arch/x86/kernel/cpu/mce/inject.c      |    7
>  b/arch/x86/kernel/cpu/topology.h        |   56 +++++++
>  b/arch/x86/kernel/cpu/topology_amd.c    |  182
> ++++++++++++++++++++++++
>  b/arch/x86/kernel/cpu/topology_common.c |  241
> ++++++++++++++++++++++++++++++++
>  b/arch/x86/kernel/cpu/topology_ext.c    |  130 +++++++++++++++++
>  b/arch/x86/kernel/cpu/zhaoxin.c         |    4
>  b/arch/x86/kernel/smpboot.c             |   12 +
>  b/arch/x86/kernel/vsmp_64.c             |   13 -
>  b/arch/x86/mm/amdtopology.c             |   35 ++--
>  b/arch/x86/xen/apic.c                   |    6
>  b/arch/x86/xen/smp_pv.c                 |    3
>  b/drivers/edac/amd64_edac.c             |    4
>  b/drivers/edac/mce_amd.c                |    4
>  39 files changed, 792 insertions(+), 720 deletions(-)
>
>