[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 3/3] multifd: Only flush once each full round of memory
From: |
Peter Xu |
Subject: |
Re: [PATCH v6 3/3] multifd: Only flush once each full round of memory |
Date: |
Thu, 16 Feb 2023 11:44:21 -0500 |
On Thu, Feb 16, 2023 at 12:00:55PM +0100, Juan Quintela wrote:
> >> @@ -4169,7 +4190,9 @@ int ram_load_postcopy(QEMUFile *f, int channel)
> >> }
> >> decompress_data_with_multi_threads(f, page_buffer, len);
> >> break;
> >> -
> >> + case RAM_SAVE_FLAG_MULTIFD_FLUSH:
> >> + multifd_recv_sync_main();
> >> + break;
> >> case RAM_SAVE_FLAG_EOS:
> >> /* normal exit */
> >> if (migrate_multifd_flush_after_each_section()) {
> >
> > We could have dropped RAM_SAVE_FLAG_MULTIFD_FLUSH and RAM_SAVE_FLAG_EOS for
> > now until we support postcopy+multifd.
>
> I don't think so.
>
> We have this curse of biblic proportions called Backwards compatibility.
>
> We need to mark the beggining and end of sections. That is independent
> of multifd.
> And for multifd we have to flush all channels at the end of each
> iteration through RAM. We could do that without involving the main
> thread, but I don't see the point of doing that.
Oops, sorry I didn't mean to drop the flags RAM_SAVE_FLAG_EOS itself, but
the calls to multifd_recv_sync_main().
RAM_SAVE_FLAG_MULTIFD_FLUSH as a whole can be dropped.
Thanks,
--
Peter Xu
[PATCH v6 2/3] multifd: Protect multifd_send_sync_main() calls, Juan Quintela, 2023/02/15