On Thu, Jan 30, 2025 at 11:08:34AM +0100, Maciej S. Szmigiero wrote: > From: "Maciej S. Szmigiero" <maciej.szmigi...@oracle.com> > > Add a basic support for receiving device state via multifd channels - > channels that are shared with RAM transfers. > > Depending whether MULTIFD_FLAG_DEVICE_STATE flag is present or not in the > packet header either device state (MultiFDPacketDeviceState_t) or RAM > data (existing MultiFDPacket_t) is read. > > The received device state data is provided to > qemu_loadvm_load_state_buffer() function for processing in the > device's load_state_buffer handler. > > Signed-off-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
I think I acked this one. You could keep my R-b if... [...] > diff --git a/migration/multifd.h b/migration/multifd.h > index 9e4baa066312..abf3acdcee40 100644 > --- a/migration/multifd.h > +++ b/migration/multifd.h > @@ -62,6 +62,12 @@ MultiFDRecvData *multifd_get_recv_data(void); > #define MULTIFD_FLAG_UADK (8 << 1) > #define MULTIFD_FLAG_QATZIP (16 << 1) > > +/* > + * If set it means that this packet contains device state > + * (MultiFDPacketDeviceState_t), not RAM data (MultiFDPacket_t). > + */ > +#define MULTIFD_FLAG_DEVICE_STATE (1 << 6) ... if this won't conflict with MULTIFD_FLAG_QATZIP. I think we should stick with one way to write it, then when rebase you can see such conflicts - either your patch uses 32 << 1, or perhaps we should start to switch to BIT() for all above instead.. -- Peter Xu