On 4/11/19 12:12 PM, Daniel Henrique Barboza wrote:
<snip/>
All that said, I think a good solution would be (2). dompmsuspend isn't a
performance sensitive command, thus the extra time to execute the API
can be ignored. Also, we can still check for
QEMU_CAPS_QUERY_CURRENT_MACHINE
inside qemuDomainPMSuspendForDuration to avoid firing up an error in a
QEMU version that doesn't know the API.
That's the thing. We can't. The capability doesn't exist yet. So every
domain that is currently running thinks that qemu doesn't have the
capability. And when updating libvirt to say next release only freshly
started domains might/will have the capability. For all already running
domains libvirt thinks the capability is not there. Only freshly started
domains will get the capability. IOW, upgrading libvirt won't help you
unless you restart your domains (might not want to do that).
What I'm suggesting is to just execute the command, do not call
qemuMonitorJSONCheckReply() and try to fetch info from the reply anyway.
For instance, this is how qemuMonitorJSONGetKVMState() works.
Michal