[libvirt] specifying cirrus ram size

Serge Hallyn serge.hallyn at ubuntu.com
Wed Mar 19 05:49:06 UTC 2014


Quoting Eric Blake (eblake at redhat.com):
> On 03/18/2014 03:59 PM, Serge Hallyn wrote:
> > Hi,
> > 
> > In order to migrate a VM from an older system with qemu-kvm to a newer
> > one with qemu, the newer qemu needs to be told to use the same vga
> > ram size as qemu-kvm used, 8M.
> > 
> > virsh domxml-from-native suggests that the way to specify a
> > 8mb cirrus vga ram size would be to add
> > 
> > <qemu:commandline>
> >  <qemu:arg value='-global'/>
> >  <qemu:arg value='cirrus-vga.vgamem_mb=8'/>
> > </qemu:commandline>
> 
> This points out a weakness in our code - <qemu:commandline> is
> intentionally unsupported, which means our XML needs an actual parameter
> for this, rather than forcing you back to qemu:commandline.  Or maybe we
> already have the parameter, in which case the bug is in the

tbh I originally expected <model type='cirrus' vram='8192'> to work,
but it seemed to be ignored.

> domxml-from-native code for not recognizing this particular usage of
> command line arguments.  But a quick grep for vgamem_mb doesn't have any
> hits in current src/qemu/qemu_command.c, so it looks like we don't
> support it yet.
> 
> > 
> > However whenever I edit a .xml to add this, it disappears.
> 
> When outputting <qemu:commandline> in domxml-from-native, you must also
> output the xmlns directive that enables its use.  domxml-from-native is
> correctly doing it, but doing it at the very first <domain> which is
> quite some distance away, so you probably missed that key point.  See
> http://libvirt.org/drvqemu.html#qemucommand
> 
> > Am I doing something silly?
> 
> You're forgetting <domain type='qemu'
> xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

Thanks, Eric, that does work.

Now unfortunately this turns out to not solve the problem, which is
to allow migration through libvirt from a qemu-kvm VM, with 8M vga ram,
to a qemu VM with 10M vga ram.  We can specify the 8M custom ram
size at the destination, but when migrating the original VMs parameters
get copied over.  And the old qemu-kvm does not support the
cirrus-vga.vgamem_mb parameter.  As far as I know there is no way to 'seed'
a set of new parameters for the destination, so that we could say "migrate
this VM to that host and add the following bits to the xml spec - am I by
chance wrong on that?

thanks,
-serge




More information about the libvir-list mailing list