From: Peter Krempa Date: Wed, 3 Dec 2014 10:18:53 +0000 (+0100) Subject: qemu: driver: Reload snapshots and managedsaves prior to reconnecting X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=48a055607c03c7cd0bdb5fc748c591db01fa45ae;p=libvirt.git qemu: driver: Reload snapshots and managedsaves prior to reconnecting Reconnect to the VM is a possibly long-running job spawned in a separate thread. We should reload the snapshot defs and managedsave state prior to spawning the thread to avoid blocking of the daemon startup which would serialize on the VM lock. Also the reloading code would violate the domain job held while reconnecting as the loader functions don't create jobs. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5dc62b0daa..31565bb74b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -873,8 +873,6 @@ qemuStateInitialize(bool privileged, NULL, NULL) < 0) goto error; - qemuProcessReconnectAll(conn, qemu_driver); - virDomainObjListForEach(qemu_driver->domains, qemuDomainSnapshotLoad, cfg->snapshotDir); @@ -883,6 +881,8 @@ qemuStateInitialize(bool privileged, qemuDomainManagedSaveLoad, qemu_driver); + qemuProcessReconnectAll(conn, qemu_driver); + qemu_driver->workerPool = virThreadPoolNew(0, 1, 0, qemuProcessEventHandler, qemu_driver); if (!qemu_driver->workerPool) goto error;