migration/multifd: Forbid spurious wakeups
Now multifd's logic is designed to have no spurious wakeup. I still remember a talk to Juan and he seems to agree we should drop it now, and if my memory was right it was there because multifd used to hit that when still debugging. Let's drop it and see what can explode; as long as it's not reaching soft-freeze. Reviewed-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240202102857.110210-15-peterx@redhat.com Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
25a1f87875
commit
859ebaf346
@ -756,7 +756,9 @@ static void *multifd_send_thread(void *opaque)
|
||||
p->next_packet_size = 0;
|
||||
qatomic_set(&p->pending_job, false);
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
} else if (qatomic_read(&p->pending_sync)) {
|
||||
} else {
|
||||
/* If not a normal job, must be a sync request */
|
||||
assert(qatomic_read(&p->pending_sync));
|
||||
p->flags = MULTIFD_FLAG_SYNC;
|
||||
multifd_send_fill_packet(p);
|
||||
ret = qio_channel_write_all(p->c, (void *)p->packet,
|
||||
@ -771,9 +773,6 @@ static void *multifd_send_thread(void *opaque)
|
||||
qatomic_set(&p->pending_sync, false);
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
qemu_sem_post(&p->sem_sync);
|
||||
} else {
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
/* sometimes there are spurious wakeups */
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user