• Thomas Gleixner's avatar
    x86/cpu/topology: Add support for the AMD 0x80000026 leaf · 63edbaa4
    Thomas Gleixner authored
    On AMD processors that support extended CPUID leaf 0x80000026, use the
    extended leaf to parse the topology information. In case of a failure,
    fall back to parsing the information from CPUID leaf 0xb.
    
    CPUID leaf 0x80000026 exposes the "CCX" and "CCD (Die)" information on
    AMD processors which have been mapped to TOPO_TILE_DOMAIN and
    TOPO_DIE_DOMAIN respectively.
    
    Since this information was previously not available via CPUID leaf 0xb
    or 0x8000001e, the "die_id", "logical_die_id", "max_die_per_pkg",
    "die_cpus", and "die_cpus_list" will differ with this addition on
    AMD processors that support extended CPUID leaf 0x80000026 and contain
    more than one "CCD (Die)" on the package.
    
    For example, following are the changes in the values reported by
    "/sys/kernel/debug/x86/topo/cpus/16" after applying this patch on a 4th
    Generation AMD EPYC System (1 x 128C/256T):
    
      (CPU16 is the first CPU of the second CCD on the package)
    
    		   tip:x86/apic      tip:x86/apic
    				     + this patch
    
      online:              1                  1
      initial_apicid:      80                 80
      apicid:              80                 80
      pkg_id:              0                  0
      die_id:              0                  4       *
      cu_id:               255                255
      core_id:             64                 64
      logical_pkg_id:      0                  0
      logical_die_id:      0                  4       *
      llc_id:              8                  8
      l2c_id:              65535              65535
      amd_node_id:         0                  0
      amd_nodes_per_pkg:   1                  1
      num_threads:         256                256
      num_cores:           128                128
      max_dies_per_pkg:    1                  8       *
      max_threads_per_core:2                  2
    
    [ prateek: commit log, updated comment in topoext_amd.c, changed has_0xb
      to has_topoext, rebased the changes on tip:x86/apic, tested the
      changes on 4th Gen AMD EPYC system ]
    
    [ mingo: tidy up the changelog a bit more ]
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20240314050432.1710-1-kprateek.nayak@amd.com
    63edbaa4
topology_ext.c 4.2 KB