Elena Ufimtseva <elena.ufimts...@oracle.com> writes: > Hello > > While working and testing various live migration scenarios, > a few issues were found. > > This is my first patches in live migration and I will > appreciate the suggestions from the community if these > patches could be done differently. > > [PATCH 1/4] multifd: wait for channels_ready before sending sync > I am not certain about this change since it seems that > the sync flag could be the part of the packets with pages that are > being sent out currently. > But the traces show this is not always the case: > multifd_send 230.873 pid=55477 id=0x0 packet_num=0x6f4 normal=0x40 flags=0x1 > next_packet_size=0x40000 > multifd_send 14.718 pid=55477 id=0x1 packet_num=0x6f5 normal=0x0 flags=0x1 > next_packet_size=0x80000 > If the sync packet is indeed can be a standalone one, then waiting for > channels_ready before seem to be appropriate, but waisting iteration on > sync only packet.
I haven't looked at this code for a while, so there's some context switching to be made, but you're definitely on the right track here. I actually have an unsent patch doing almost the same as your patch 1/4. I'll comment more there. About the sync being standalone, I would expect that to always be the case since we're incrementing packet_num at that point. > [PATCH 4/4] is also relevant to 1/4, but fixes the over-accounting in > case of sync only packet. > > > Thank you in advance and looking forward for your feedback. > > Elena > > Elena Ufimtseva (4): > multifd: wait for channels_ready before sending sync > migration: check for rate_limit_max for RATE_LIMIT_DISABLED > multifd: fix counters in multifd_send_thread > multifd: reset next_packet_len after sending pages > > migration/migration-stats.c | 8 ++++---- > migration/multifd.c | 11 ++++++----- > 2 files changed, 10 insertions(+), 9 deletions(-)