• Srikar Dronamraju's avatar
    powerpc/smp: Use nid as fallback for package_id · a05f0e5b
    Srikar Dronamraju authored
    package_id is to match cores that are part of the same chip. On
    PowerNV machines, package_id defaults to chip_id. However ibm,chip_id
    property is not present in device-tree of PowerVM LPARs. Hence lscpu
    output shows one core per socket and multiple cores.
    
    To overcome this, use nid as the package_id on PowerVM LPARs.
    
    Before the patch:
    
      Architecture:        ppc64le
      Byte Order:          Little Endian
      CPU(s):              128
      On-line CPU(s) list: 0-127
      Thread(s) per core:  8
      Core(s) per socket:  1                     <----------------------
      Socket(s):           16                    <----------------------
      NUMA node(s):        2
      Model:               2.2 (pvr 004e 0202)
      Model name:          POWER9 (architected), altivec supported
      Hypervisor vendor:   pHyp
      Virtualization type: para
      L1d cache:           32K
      L1i cache:           32K
      L2 cache:            512K
      L3 cache:            10240K
      NUMA node0 CPU(s):   0-63
      NUMA node1 CPU(s):   64-127
      #
      # cat /sys/devices/system/cpu/cpu0/topology/physical_package_id
      -1
    
    After the patch:
    
      Architecture:        ppc64le
      Byte Order:          Little Endian
      CPU(s):              128
      On-line CPU(s) list: 0-127
      Thread(s) per core:  8                     <---------------------
      Core(s) per socket:  8                     <---------------------
      Socket(s):           2
      NUMA node(s):        2
      Model:               2.2 (pvr 004e 0202)
      Model name:          POWER9 (architected), altivec supported
      Hypervisor vendor:   pHyp
      Virtualization type: para
      L1d cache:           32K
      L1i cache:           32K
      L2 cache:            512K
      L3 cache:            10240K
      NUMA node0 CPU(s):   0-63
      NUMA node1 CPU(s):   64-127
      #
      # cat /sys/devices/system/cpu/cpu0/topology/physical_package_id
      0
    
    Now lscpu output is more in line with the system configuration.
    Signed-off-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    [mpe: Use pkg_id instead of ppid, tweak change log and comment]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200129135121.24617-1-srikar@linux.vnet.ibm.com
    a05f0e5b
smp.c 33.9 KB