On Fri, Jan 09, 2015 at 10:02:07AM +0100, Pavel Hrdina wrote: > QEMU internally updates the size of video memory if the domain XML had > provided too low memory size or there are some dependencies for a QXL > devices 'vgamem' and 'ram' size. We need to know about the changes and > store them into the status XML to not break migration or managedsave > through different libvirt versions. > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > --- > src/qemu/qemu_monitor.c | 38 ++++++++++++++++++++++++ > src/qemu/qemu_monitor.h | 4 +++ > src/qemu/qemu_monitor_json.c | 69 ++++++++++++++++++++++++++++++++++++++++++ > src/qemu/qemu_monitor_json.h | 3 ++ > src/qemu/qemu_process.c | 71 ++++++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 185 insertions(+) > > diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c > index 55f07f3..45bb62f 100644 > --- a/src/qemu/qemu_monitor.c > +++ b/src/qemu/qemu_monitor.c > @@ -1154,6 +1154,44 @@ qemuMonitorFindBalloonObjectPath(qemuMonitorPtr mon, > return ret; > } > > + > +/** > + * To update video memory size in status XML we need to load correct values from > + * QEMU. This is supported only with JSON monitor. > + * > + * Returns 0 on success, -1 on failure and sets proper error message. > + */ > +int > +qemuMonitorUpdateVideoMemorySize(qemuMonitorPtr mon, > + virDomainVideoDefPtr video, > + const char *videoName) > +{ > + int ret = -1; > + char *path = NULL; > + > + if (mon->json) { > + if (qemuMonitorFindObjectPath(mon, "/", videoName, &path) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("Failed to find QOM Object path for device '%s'"), > + videoName); > + return -1; > + } > + if (qemuMonitorJSONUpdateVideoMemorySize(mon, video, path) < 0) > + goto cleanup; > + } else { > + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", > + _("JSON monitor is required")); > + return -1; > + } This fatal error is going to break all guest startup with non-json monitor IIUC. Regards, 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list