mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03: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>
This commit is contained in:
parent
e4d7ddfdd2
commit
522e81cbb5
@ -2385,7 +2385,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 };
|
||||
|
||||
@ -2407,6 +2407,9 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
|
||||
break;
|
||||
}
|
||||
|
||||
if (jobInfo->type != VIR_DOMAIN_JOB_UNBOUNDED)
|
||||
break;
|
||||
|
||||
virObjectUnlock(vm);
|
||||
|
||||
nanosleep(&ts, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user