• Thomas Gleixner's avatar
    x86/topology: Add a mechanism to track topology via APIC IDs · f1f758a8
    Thomas Gleixner authored
    Topology on X86 is determined by the registered APIC IDs and the
    segmentation information retrieved from CPUID. Depending on the granularity
    of the provided CPUID information the most fine grained scheme looks like
    this according to Intel terminology:
    
       [PKG][DIEGRP][DIE][TILE][MODULE][CORE][THREAD]
    
    Not enumerated domain levels consume 0 bits in the APIC ID. This allows to
    provide a consistent view at the topology and determine other information
    precisely like the number of cores in a package on hybrid systems, where
    the existing assumption that number or cores == number of threads / threads
    per core does not hold.
    
    Provide per domain level bitmaps which record the APIC ID split into the
    domain levels to make later evaluation of domain level specific information
    simple. This allows to calculate e.g. the logical IDs without any further
    extra logic.
    
    Contrary to the existing registration mechanism this records disabled CPUs,
    which are subject to later hotplug as well. That's useful for boot time
    sizing of package or die dependent allocations without using heuristics.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Tested-by: default avatarMichael Kelley <mhklinux@outlook.com>
    Tested-by: default avatarSohil Mehta <sohil.mehta@intel.com>
    Link: https://lore.kernel.org/r/20240213210252.406985021@linutronix.de
    
    
    f1f758a8
topology.c 11 KB