Map is based on existing cases in code where we send suspended
event after changing domain state to paused.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
---
src/qemu/qemu_domain.c | 34 ++++++++++++++++++++++++++++++++++
src/qemu/qemu_domain.h | 3 +++
src/qemu/qemu_process.c | 9 ++++++---
3 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index f00f1b3..557743b 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -13558,3 +13558,37 @@ qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason)
return VIR_DOMAIN_EVENT_RESUMED_UNPAUSED;
}
+
+
+virDomainEventSuspendedDetailType
+qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason)
+{
+ switch (reason) {
+ case VIR_DOMAIN_PAUSED_MIGRATION:
+ return VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED;
+
+ case VIR_DOMAIN_PAUSED_FROM_SNAPSHOT:
+ return VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT;
+
+ case VIR_DOMAIN_PAUSED_POSTCOPY_FAILED:
+ return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED;
+
+ case VIR_DOMAIN_PAUSED_POSTCOPY:
+ return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY;
+
+ case VIR_DOMAIN_PAUSED_UNKNOWN:
+ case VIR_DOMAIN_PAUSED_USER:
+ case VIR_DOMAIN_PAUSED_SAVE:
+ case VIR_DOMAIN_PAUSED_DUMP:
+ case VIR_DOMAIN_PAUSED_IOERROR:
+ case VIR_DOMAIN_PAUSED_WATCHDOG:
+ case VIR_DOMAIN_PAUSED_SHUTTING_DOWN:
+ case VIR_DOMAIN_PAUSED_SNAPSHOT:
+ case VIR_DOMAIN_PAUSED_CRASHED:
+ case VIR_DOMAIN_PAUSED_STARTING_UP:
+ case VIR_DOMAIN_PAUSED_LAST:
+ break;
+ }
+
+ return VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
+}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 380ea14..ee88266 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -1093,4 +1093,7 @@ void qemuDomainStorageIdReset(qemuDomainObjPrivatePtr priv);
virDomainEventResumedDetailType
qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason);
+virDomainEventSuspendedDetailType
+qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason);
+
#endif /* __QEMU_DOMAIN_H__ */
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 27021b9..6858377 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -642,7 +642,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
virQEMUDriverPtr driver = opaque;
virObjectEventPtr event = NULL;
virDomainPausedReason reason;
- virDomainEventSuspendedDetailType detail = VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
+ virDomainEventSuspendedDetailType detail;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
qemuDomainObjPrivatePtr priv = vm->privateData;
@@ -668,8 +668,11 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
}
}
- VIR_DEBUG("Transitioned guest %s to paused state, reason %s",
- vm->def->name, virDomainPausedReasonTypeToString(reason));
+ detail = qemuDomainPausedReasonToSuspendedEvent(reason);
+ VIR_DEBUG("Transitioned guest %s to paused state, "
+ "reason %s, event detail %d",
+ vm->def->name, virDomainPausedReasonTypeToString(reason),
+ detail);
if (priv->job.current)
ignore_value(virTimeMillisNow(&priv->job.current->stopped));
--
1.8.3.1
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
$SUBJ:
s/map/Map
On 10/10/18 4:04 AM, Nikolay Shirokovskiy wrote:
> Map is based on existing cases in code where we send suspended
> event after changing domain state to paused.
>
> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
> ---
> src/qemu/qemu_domain.c | 34 ++++++++++++++++++++++++++++++++++
> src/qemu/qemu_domain.h | 3 +++
> src/qemu/qemu_process.c | 9 ++++++---
> 3 files changed, 43 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index f00f1b3..557743b 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -13558,3 +13558,37 @@ qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason)
>
> return VIR_DOMAIN_EVENT_RESUMED_UNPAUSED;
> }
> +
> +
> +virDomainEventSuspendedDetailType
> +qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason)
> +{
> + switch (reason) {
> + case VIR_DOMAIN_PAUSED_MIGRATION:
> + return VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED;
> +
> + case VIR_DOMAIN_PAUSED_FROM_SNAPSHOT:
> + return VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT;
> +
> + case VIR_DOMAIN_PAUSED_POSTCOPY_FAILED:
> + return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED;
> +
> + case VIR_DOMAIN_PAUSED_POSTCOPY:
> + return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY;
> +
> + case VIR_DOMAIN_PAUSED_UNKNOWN:
> + case VIR_DOMAIN_PAUSED_USER:
> + case VIR_DOMAIN_PAUSED_SAVE:
> + case VIR_DOMAIN_PAUSED_DUMP:
> + case VIR_DOMAIN_PAUSED_IOERROR:
> + case VIR_DOMAIN_PAUSED_WATCHDOG:
> + case VIR_DOMAIN_PAUSED_SHUTTING_DOWN:
> + case VIR_DOMAIN_PAUSED_SNAPSHOT:
This one may cause issues in the next patch...
> + case VIR_DOMAIN_PAUSED_CRASHED:
> + case VIR_DOMAIN_PAUSED_STARTING_UP:
> + case VIR_DOMAIN_PAUSED_LAST:
> + break;
> + }
> +
> + return VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
> +}
> diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
> index 380ea14..ee88266 100644
> --- a/src/qemu/qemu_domain.h
> +++ b/src/qemu/qemu_domain.h
> @@ -1093,4 +1093,7 @@ void qemuDomainStorageIdReset(qemuDomainObjPrivatePtr priv);
> virDomainEventResumedDetailType
> qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason);
>
> +virDomainEventSuspendedDetailType
> +qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason);
> +
> #endif /* __QEMU_DOMAIN_H__ */
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 27021b9..6858377 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -642,7 +642,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
> virQEMUDriverPtr driver = opaque;
> virObjectEventPtr event = NULL;
> virDomainPausedReason reason;
> - virDomainEventSuspendedDetailType detail = VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
> + virDomainEventSuspendedDetailType detail;
> virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
> qemuDomainObjPrivatePtr priv = vm->privateData;
>
> @@ -668,8 +668,11 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
> }
> }
>
> - VIR_DEBUG("Transitioned guest %s to paused state, reason %s",
> - vm->def->name, virDomainPausedReasonTypeToString(reason));
> + detail = qemuDomainPausedReasonToSuspendedEvent(reason);
This setting of @detail overrides the @detail set just above...
It seems we can remove the @detail setting above in this patch as well
as the need for the { } and { } around the setting of @reason in this
patch instead of the subsequent one. Also, may as well place the check
on the same line since it fits, e.g.:
if (priv->job.current->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY)
reason = VIR_DOMAIN_PAUSED_POSTCOPY;
else
reason = VIR_DOMAIN_PAUSED_MIGRATION;
With that adjustment,
Reviewed-by: John Ferlan <jferlan@redhat.com>
John
Similar to patch 1, I can make the changes for you...
> + VIR_DEBUG("Transitioned guest %s to paused state, "
> + "reason %s, event detail %d",
> + vm->def->name, virDomainPausedReasonTypeToString(reason),
> + detail);
>
> if (priv->job.current)
> ignore_value(virTimeMillisNow(&priv->job.current->stopped));
>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 16.10.2018 21:42, John Ferlan wrote:
>
> $SUBJ:
>
> s/map/Map
>
> On 10/10/18 4:04 AM, Nikolay Shirokovskiy wrote:
>> Map is based on existing cases in code where we send suspended
>> event after changing domain state to paused.
>>
>> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
>> ---
>> src/qemu/qemu_domain.c | 34 ++++++++++++++++++++++++++++++++++
>> src/qemu/qemu_domain.h | 3 +++
>> src/qemu/qemu_process.c | 9 ++++++---
>> 3 files changed, 43 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>> index f00f1b3..557743b 100644
>> --- a/src/qemu/qemu_domain.c
>> +++ b/src/qemu/qemu_domain.c
>> @@ -13558,3 +13558,37 @@ qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason)
>>
>> return VIR_DOMAIN_EVENT_RESUMED_UNPAUSED;
>> }
>> +
>> +
>> +virDomainEventSuspendedDetailType
>> +qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason)
>> +{
>> + switch (reason) {
>> + case VIR_DOMAIN_PAUSED_MIGRATION:
>> + return VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED;
>> +
>> + case VIR_DOMAIN_PAUSED_FROM_SNAPSHOT:
>> + return VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT;
>> +
>> + case VIR_DOMAIN_PAUSED_POSTCOPY_FAILED:
>> + return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED;
>> +
>> + case VIR_DOMAIN_PAUSED_POSTCOPY:
>> + return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY;
>> +
>> + case VIR_DOMAIN_PAUSED_UNKNOWN:
>> + case VIR_DOMAIN_PAUSED_USER:
>> + case VIR_DOMAIN_PAUSED_SAVE:
>> + case VIR_DOMAIN_PAUSED_DUMP:
>> + case VIR_DOMAIN_PAUSED_IOERROR:
>> + case VIR_DOMAIN_PAUSED_WATCHDOG:
>> + case VIR_DOMAIN_PAUSED_SHUTTING_DOWN:
>> + case VIR_DOMAIN_PAUSED_SNAPSHOT:
>
> This one may cause issues in the next patch...
>
>> + case VIR_DOMAIN_PAUSED_CRASHED:
>> + case VIR_DOMAIN_PAUSED_STARTING_UP:
>> + case VIR_DOMAIN_PAUSED_LAST:
>> + break;
>> + }
>> +
>> + return VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
>> +}
>> diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
>> index 380ea14..ee88266 100644
>> --- a/src/qemu/qemu_domain.h
>> +++ b/src/qemu/qemu_domain.h
>> @@ -1093,4 +1093,7 @@ void qemuDomainStorageIdReset(qemuDomainObjPrivatePtr priv);
>> virDomainEventResumedDetailType
>> qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason);
>>
>> +virDomainEventSuspendedDetailType
>> +qemuDomainPausedReasonToSuspendedEvent(virDomainPausedReason reason);
>> +
>> #endif /* __QEMU_DOMAIN_H__ */
>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>> index 27021b9..6858377 100644
>> --- a/src/qemu/qemu_process.c
>> +++ b/src/qemu/qemu_process.c
>> @@ -642,7 +642,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
>> virQEMUDriverPtr driver = opaque;
>> virObjectEventPtr event = NULL;
>> virDomainPausedReason reason;
>> - virDomainEventSuspendedDetailType detail = VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
>> + virDomainEventSuspendedDetailType detail;
>> virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
>> qemuDomainObjPrivatePtr priv = vm->privateData;
>>
>> @@ -668,8 +668,11 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
>> }
>> }
>>
>> - VIR_DEBUG("Transitioned guest %s to paused state, reason %s",
>> - vm->def->name, virDomainPausedReasonTypeToString(reason));
>> + detail = qemuDomainPausedReasonToSuspendedEvent(reason);
>
> This setting of @detail overrides the @detail set just above...
But overrides to the same value.
>
> It seems we can remove the @detail setting above in this patch as well
> as the need for the { } and { } around the setting of @reason in this
> patch instead of the subsequent one. Also, may as well place the check
> on the same line since it fits, e.g.:
>
> if (priv->job.current->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY)
> reason = VIR_DOMAIN_PAUSED_POSTCOPY;
> else
> reason = VIR_DOMAIN_PAUSED_MIGRATION;
>
> With that adjustment,
>
> Reviewed-by: John Ferlan <jferlan@redhat.com>
>
> John
>
> Similar to patch 1, I can make the changes for you...
I'm ok here too, but we can left removing setting details for QEMU_DOMAIN_JOB_STATUS_POSTCOPY
as well as this patch correct in this aspect.
Nikolay
>
>> + VIR_DEBUG("Transitioned guest %s to paused state, "
>> + "reason %s, event detail %d",
>> + vm->def->name, virDomainPausedReasonTypeToString(reason),
>> + detail);
>>
>> if (priv->job.current)
>> ignore_value(virTimeMillisNow(&priv->job.current->stopped));
>>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2026 Red Hat, Inc.