[libvirt] [PATCH v3 6/7] virsh: add function to get the CPU models for an arch

Daniel P. Berrange berrange at redhat.com
Mon Sep 16 09:45:50 UTC 2013


On Fri, Sep 13, 2013 at 03:45:58PM -0600, Eric Blake wrote:
> On 09/13/2013 03:06 PM, Eric Blake wrote:
> > On 09/13/2013 02:58 PM, Eric Blake wrote:
> >> On 09/11/2013 08:13 AM, Giuseppe Scrivano wrote:
> >>
> >> I tweaked this some during my testing of NULL models; but don't think we
> >> need to make virsh expose NULL models to the command line, so I'm not
> >> changing this.
> >>
> >> ACK with this squashed in (oh, I just noticed my emacs'
> >> copyright-checker kicked in for my edits; I wonder how many other files
> >> you touched that could use an updated copyright):
> >>
> > 
> > Blah.  I get this far, where things are finally testable, and see:
> > 
> > # tools/virsh cpu-models x86_64
> > 2013-09-13 21:04:43.332+0000: 16843: error : cpuMapLoad:121 : internal
> > error: cannot find CPU map for x86_64 architecture
> > error: failed to get CPU model names
> > error: internal error: cannot find CPU map for x86_64 architecture
> > 
> > I'm now debugging whether it was one of the patches I modified, or a
> > flaw in your original patch.
> 
> Jiri helped me on IRC.  The list of arch names in 'virsh capabilities'
> is from a canonical list; but the list of arch names in
> /usr/share/libvirt/cpu_map.xml is a list of drivers (which can support
> one _or more than one_ canonical architecture). More precisely:
> 
> $ grep 'arch ' /usr/share/libvirt/cpu_map.xml
>   <arch name='x86'>
>   <arch name='ppc64'>
> $ tools/virsh -c test:///default capabilities | grep 'arch '
>     <arch name='i686'>
>     <arch name='i686'>
> 
> this suggests that the 'x86' driver knows how to manage both the 'i686'
> and 'x86_64' architectures.  So ideally, qemu-system-x86_64 should
> support 'virsh cpu-models x86_64' and 'virsh cpu-models i686' with
> identical lists (after all, x86_64 chips can run in i686 mode), while
> the test driver (which claims support for ONLY i686) might want to fail
> for x86_64.  Furthermore, with your patches as-is, 'virsh cpu-models
> x86' returned a list; but I don't think this is appropriate as that name
> is not in the capabilities output.

Agreed, that is bad. We need to have the API accepting formal arch
names, as defined by  virArch enum only, and translate to the names
used by the CPU database.

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