mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 07:17:44 +00:00
qemu_migration.c: sleep first before checking for migration status.
The problem with the previous implementation is,
even when qemuMigrationUpdateJobStatus() detects a migration job
has completed, it will do a sleep for 50 ms (which is unnecessary
and only adds up to the VM pause time).
Signed-off-by: Xing Lin <xinglin@cs.utah.edu>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 522e81cbb5
)
This commit is contained in:
parent
d17b2d9d5d
commit
8ab12f1a5b
@ -2369,7 +2369,7 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
|
||||
|
||||
jobInfo->type = VIR_DOMAIN_JOB_UNBOUNDED;
|
||||
|
||||
while (jobInfo->type == VIR_DOMAIN_JOB_UNBOUNDED) {
|
||||
while (1) {
|
||||
/* Poll every 50ms for progress & to allow cancellation */
|
||||
struct timespec ts = { .tv_sec = 0, .tv_nsec = 50 * 1000 * 1000ull };
|
||||
|
||||
@ -2391,6 +2391,9 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
|
||||
break;
|
||||
}
|
||||
|
||||
if (jobInfo->type != VIR_DOMAIN_JOB_UNBOUNDED)
|
||||
break;
|
||||
|
||||
virObjectUnlock(vm);
|
||||
|
||||
nanosleep(&ts, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user