[libvirt] [PATCH] nodeinfo: Get the correct CPU number on AMD Magny Cours platform
Daniel P. Berrange
berrange at redhat.com
Fri May 11 14:33:18 UTC 2012
On Fri, May 11, 2012 at 10:28:21PM +0800, Osier Yang wrote:
> "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.
> ---
> src/nodeinfo.c | 28 ++++++++++++++++++++++++++++
> 1 files changed, 28 insertions(+), 0 deletions(-)
Given how complex (and frequently broken) this CPU info parsing is, I
really think this change needs to be accompanied by improvements to
our test suite. IIUC, we can easily test this by including copies of
the /proc/cpuinfo from a variety of different machines in our tests
directory and running the APIs against that.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list