On 09/12/2018 08:55 AM, Jiri Denemark wrote:
> Whenever we get the RESUME event from QEMU, we change the state of the
> affected domain to VIR_DOMAIN_RUNNING with VIR_DOMAIN_RUNNING_UNPAUSED
> reason. This is fine if the domain is resumed unexpectedly, but when we
> sent "cont" to QEMU we usually have a better reason for the state
> change. The better reason is used in qemuProcessStartCPUs which also
> sets the domain state to running if qemuMonitorStartCPUs reports
> success. Thus we may end up with two state updates in a row, but the
> final reason is correct.
>
> This patch is a preparation for dropping the state change done in
> qemuMonitorStartCPUs for which we need to pass the actual running reason
> to the RESUME event handler and use it there instead of
> VIR_DOMAIN_RUNNING_UNPAUSED.
>
> Signed-off-by: Jiri Denemark <[email protected]>
> ---
> src/qemu/qemu_domain.h | 4 ++++
> src/qemu/qemu_process.c | 23 +++++++++++++++++------
> 2 files changed, 21 insertions(+), 6 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
> index 914c9a6a8d..3f3f7ccf18 100644
> --- a/src/qemu/qemu_domain.h
> +++ b/src/qemu/qemu_domain.h
> @@ -366,6 +366,10 @@ struct _qemuDomainObjPrivate {
>
> /* counter for generating node names for qemu disks */
> unsigned long long nodenameindex;
> +
> + /* qemuProcessStartCPUs stores the reason for starting vCPUs here for the
> + * RESUME event handler to use it */
> + virDomainRunningReason runningReason;
So what happens in the libvirtd restart case/condition? This isn't
Format/Parse'd so it's lost or essentially set to RUNNING_UNKNOWN.
> };
>
> # define QEMU_DOMAIN_PRIVATE(vm) \
The rest seems fine, I think the qemuDomainObjPrivateXML{Parse|Format}
code is "simple enough" to copy from other examples that you don't need
to respin/repost - you can show a diff.
Assuming a proper Parse/Format,
Reviewed-by: John Ferlan <[email protected]>
John
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list