• O
    nodeinfo: Get the correct CPU number on AMD Magny Cours platform · 10d9038b
    Osier Yang 提交于
    "Instead of developing one CPU with 12 cores, the Magny Cours is
    actually two 6 core “Bulldozer” CPUs combined in to one package"
    
    I.e, each package has two NUMA nodes, and the two numa nodes share
    the same core ID set (0-6), which means parsing the cores number
    from sysfs doesn't work in this case.
    
    And the wrong CPU number could cause three problems for libvirt:
    
    1) performance lost
    
      A domain without "cpuset" or "placement='auto'" (to drive numad)
    specified will be only pinned to part of the CPUs.
    
    2) domain can be started
    
      If a domain uses numad, and the advisory nodeset returned from
    numad contains node which exceeds the range of wrong total CPU
    number. The domain will fail to start, as the bitmask passed to
    sched_setaffinity could be fully filled with zero.
    
    3) wrong CPU number affects lots of stuffs.
    
      E.g. for command "virsh vcpuinfo", "virsh vcpupin", it will always
    output with the truncated CPU list.
    
    For more details:
    
    https://www.redhat.com/archives/libvir-list/2012-May/msg00607.html
    
    This patch is to fix the problem by parsing /proc/cpuinfo to get
    the value of field "cpu cores", and use it as nodeinfo->cores if
    it's greater than the cores number from sysfs.
    10d9038b
linux-nodeinfo-sysfs-test-3-cpu-x86-output.txt 41 字节