[libvirt] [PATCH v2 03/12] qemu: introduce QEMU_DOMAIN_JOB_STATUS_POSTCOPY
Jiri Denemark
jdenemar at redhat.com
Thu Feb 16 14:25:34 UTC 2017
On Wed, Dec 28, 2016 at 17:39:12 +0300, Nikolay Shirokovskiy wrote:
> Current code consults job.current->stats.status to check for postcopy
> state. First it is more correct to check for both job.current->status
> and job.current->stats.status.code because on some paths on failures
> we change only the former. Second if qemu supports migration events
> then stats can change unexpectedly.
>
> Let's introduce QEMU_DOMAIN_JOB_STATUS_POSTCOPY state for job.current->status.
>
> This patch removes all state checking usage of stats except for
> qemuDomainGetJobStatsInternal. This place will be handled separately.
> ---
> src/qemu/qemu_domain.c | 1 +
> src/qemu/qemu_domain.h | 1 +
> src/qemu/qemu_driver.c | 5 +++--
> src/qemu/qemu_migration.c | 18 +++++++++++-------
> src/qemu/qemu_process.c | 4 ++--
> 5 files changed, 18 insertions(+), 11 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 3582151..952a933 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -393,6 +393,7 @@ qemuDomainJobStatusToType(qemuDomainJobStatus status)
> case QEMU_DOMAIN_JOB_STATUS_NONE:
> return VIR_DOMAIN_JOB_NONE;
> case QEMU_DOMAIN_JOB_STATUS_ACTIVE:
> + case QEMU_DOMAIN_JOB_STATUS_POSTCOPY:
> return VIR_DOMAIN_JOB_UNBOUNDED;
> case QEMU_DOMAIN_JOB_STATUS_COMPLETED:
> return VIR_DOMAIN_JOB_COMPLETED;
> diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
> index f257dc1..273145d 100644
> --- a/src/qemu/qemu_domain.h
> +++ b/src/qemu/qemu_domain.h
> @@ -102,6 +102,7 @@ typedef enum {
> QEMU_DOMAIN_JOB_STATUS_NONE = 0,
> QEMU_DOMAIN_JOB_STATUS_ACTIVE,
> QEMU_DOMAIN_JOB_STATUS_COMPLETED,
> + QEMU_DOMAIN_JOB_STATUS_POSTCOPY,
Adding this item above QEMU_DOMAIN_JOB_STATUS_COMPLETED would make more
sense.
> QEMU_DOMAIN_JOB_STATUS_FAILED,
> QEMU_DOMAIN_JOB_STATUS_CANCELED,
> } qemuDomainJobStatus;
...
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index c5184b2..64e5b91 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -2558,6 +2558,10 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobInfo)
> jobInfo->status = QEMU_DOMAIN_JOB_STATUS_COMPLETED;
> break;
>
> + case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY:
> + jobInfo->status = QEMU_DOMAIN_JOB_STATUS_POSTCOPY;
> + break;
> +
This case would also better fit above the COMPLETED one.
> case QEMU_MONITOR_MIGRATION_STATUS_INACTIVE:
> jobInfo->status = QEMU_DOMAIN_JOB_STATUS_NONE;
> break;
Nice cleanup. ACK once enum items are reordered.
Jirka
More information about the libvir-list
mailing list