
On 11/25/2016 10:07 AM, Peter Krempa wrote:
On Fri, Nov 25, 2016 at 10:03:38 +0100, Peter Krempa wrote:
On Fri, Nov 25, 2016 at 09:19:18 +0100, Boris Fiuczynski wrote:
[...]
src/qemu/qemu_process.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index f8f379a..675f5b5 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3349,8 +3349,7 @@ qemuProcessReconnect(void *opaque) /* If upgrading from old libvirtd we won't have found any * caps in the domain status, so re-query them
At reconnect the capabilities are taken from the status XML file, where they are saved for every instance specifically. This code is supposed to run
only when a very old version of libvirt did not save the capability flags into the status XML. It's even explained in the comment above.
*/ - if (!priv->qemuCaps && - !(priv->qemuCaps = virQEMUCapsCacheLookupCopy(caps, + if (!(priv->qemuCaps = virQEMUCapsCacheLookupCopy(caps, driver->qemuCapsCache, obj->def->emulator, obj->def->os.machine)))
NACK, this certainly is not the right fix. Does the status XML have the 'query-hotpluggable-cpus' capability set? If it's so then it was probably mis-detected at start of the VM and should be fixed there.
If there is no such capability, then the reconnect code is broken somehow.
At any rate we should not re-detect the capabilities if they were reloaded properly from the XML.
Peter
Peter, looking at your commit message of 920bbe5c it reads as follows: qemu: capabilities: Extract availability of new cpu hotplug for machine types QEMU reports whether 'query-hotpluggable-cpus' is supported for a given machine type. Extract and cache the information using the capability cache. When copying the capabilities for a new start of qemu, mask out the presence of QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS if the machine type doesn't support hotpluggable cpus. The loaded XML has the 'query-hotpluggable-cpus' capability set since the qmp command exists in the list returned by the qmp command query-commands by the qemu binary. The machine type dependent masking of QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS you are doing for a new start of qemu seems therefore also required to be done for reconnecting to this running qemu domain. Are you saying that this is wrong and the machine type dependent masking result of the 'query-hotpluggable-cpus' capability should be stored in the XML? -- Mit freundlichen Grüßen/Kind regards Boris Fiuczynski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martina Köderitz Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294