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. > > Can we just make socket_start_incoming_migration_internal() listen on a > static but larger value? Yes, agree for this and that's out initial change. This needs listen() to create a longer queue for pending connections (seems OK to me). Need to see Daniel and Juan's opinion about this.