migration/ram: Yield periodically to the main loop
commite65cec5e5d97927d22b39167d3e8edeffc771788
authorYury Kotov <yury-kotov@yandex-team.ru>
Mon, 25 Nov 2019 13:36:32 +0000 (25 16:36 +0300)
committerJuan Quintela <quintela@redhat.com>
Mon, 20 Jan 2020 08:10:22 +0000 (20 09:10 +0100)
tree65baa09279886e048f10dd353e5155108e691973
parent174723ffe586e453f8ed4010ea07bbf79805b63f
migration/ram: Yield periodically to the main loop

Usually, incoming migration coroutine yields to the main loop
while its IO-channel is waiting for data to receive. But there is a case
when RAM migration and data receive have the same speed: VM with huge
zeroed RAM. In this case, IO-channel won't read and thus the main loop
is stuck and for instance, it doesn't respond to QMP commands.

For this case, yield periodically, but not too often, so as not to
affect the speed of migration.

Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/ram.c