"Maciej S. Szmigiero" <m...@maciej.szmigiero.name> writes: > From: "Maciej S. Szmigiero" <maciej.szmigi...@oracle.com> > > Since device state transfer via multifd channels requires multifd > channels with packets and is currently not compatible with multifd > compression add an appropriate query function so device can learn > whether it can actually make use of it. > > Signed-off-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Fabiano Rosas <faro...@suse.de> Out of curiosity, what do you see as a blocker for migrating to a file? We would just need to figure out a mapping from file offset some unit of data to be able to write in parallel like with ram (of which the page offset is mapped to the file offset). > --- > include/migration/misc.h | 1 + > migration/multifd-device-state.c | 7 +++++++ > 2 files changed, 8 insertions(+) > > diff --git a/include/migration/misc.h b/include/migration/misc.h > index 7266b1b77d1f..189de6d02ad6 100644 > --- a/include/migration/misc.h > +++ b/include/migration/misc.h > @@ -114,5 +114,6 @@ void dirty_bitmap_mig_init(void); > /* migration/multifd-device-state.c */ > bool multifd_queue_device_state(char *idstr, uint32_t instance_id, > char *data, size_t len); > +bool migration_has_device_state_support(void); > > #endif > diff --git a/migration/multifd-device-state.c > b/migration/multifd-device-state.c > index c9b44f0b5ab9..7b34fe736c7f 100644 > --- a/migration/multifd-device-state.c > +++ b/migration/multifd-device-state.c > @@ -11,6 +11,7 @@ > #include "qemu/lockable.h" > #include "migration/misc.h" > #include "multifd.h" > +#include "options.h" > > static QemuMutex queue_job_mutex; > > @@ -97,3 +98,9 @@ bool multifd_queue_device_state(char *idstr, uint32_t > instance_id, > > return true; > } > + > +bool migration_has_device_state_support(void) > +{ > + return migrate_multifd() && !migrate_mapped_ram() && > + migrate_multifd_compression() == MULTIFD_COMPRESSION_NONE; > +}