On Fri, May 19, 2023 at 02:34:57AM +0000, Wang, Wei W wrote:
> On Friday, May 19, 2023 3:20 AM, Peter Xu wrote:
> > On Fri, May 19, 2023 at 12:00:26AM +0800, Wei Wang wrote:
> > > qemu_start_incoming_migration needs to check the number of multifd
> > > channels or postcopy ram channels to configure the backlog parameter (i.e.
> > > the maximum length to which the queue of pending connections for
> > > sockfd may grow) of listen(). So multifd and postcopy-preempt caps
> > > require the use of deferred incoming, that is, calling
> > > qemu_start_incoming_migration should be deferred via qmp or hmp
> > > commands after the cap of multifd and postcopy-preempt are configured.
> > >
> > > Check if deferred incoming is used when enabling multifd or
> > > postcopy-preempt, and fail the check with error messages if not.
> > >
> > > Signed-off-by: Wei Wang <wei.w.w...@intel.com>
> > 
> > IIUC this will unfortunately break things like:
> > 
> >   -global migration.x-postcopy-preempt=on
> > 
> > where the cap is actually applied before incoming starts even with !defer so
> > it should still work.
> 
> Actually the patch doesn’t check "!defer". It just checks if incoming has 
> been started
> or not. It allows the 2 caps to be set only before incoming starts. So I 
> think the above
> should work.

Ah yes indeed it keeps working, because we apply -global bits before setup
sockets. Then it's fine by me since that's the only thing I would still
like to keep it working. :)

If so, can we reword the error message a bit?  Obviously as you said we're
not really checking against -defer, but established channels.  The problem
is if something is established without knowing multifd being there it may
not work for multifd or preempt, not strictly about defer.

How about:

  "Multifd/Preempt-Mode cannot be modified if incoming channel has setup"

?

-- 
Peter Xu


Reply via email to