Quoting Eric Blake (eblake(a)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