On Mon, Jan 8, 2024 at 12:39 PM Fabiano Rosas <faro...@suse.de> wrote: > > Hao Xiang <hao.xi...@bytedance.com> writes: > > > From: Juan Quintela <quint...@redhat.com> > > > > We have to enable it by default until we introduce the new code. > > > > Signed-off-by: Juan Quintela <quint...@redhat.com> > > --- > > migration/options.c | 15 +++++++++++++++ > > migration/options.h | 1 + > > qapi/migration.json | 8 +++++++- > > 3 files changed, 23 insertions(+), 1 deletion(-) > > > > diff --git a/migration/options.c b/migration/options.c > > index 8d8ec73ad9..0f6bd78b9f 100644 > > --- a/migration/options.c > > +++ b/migration/options.c > > @@ -204,6 +204,8 @@ Property migration_properties[] = { > > DEFINE_PROP_MIG_CAP("x-switchover-ack", > > MIGRATION_CAPABILITY_SWITCHOVER_ACK), > > DEFINE_PROP_MIG_CAP("x-dirty-limit", MIGRATION_CAPABILITY_DIRTY_LIMIT), > > + DEFINE_PROP_MIG_CAP("main-zero-page", > > + MIGRATION_CAPABILITY_MAIN_ZERO_PAGE), > > DEFINE_PROP_END_OF_LIST(), > > }; > > > > @@ -284,6 +286,19 @@ bool migrate_multifd(void) > > return s->capabilities[MIGRATION_CAPABILITY_MULTIFD]; > > } > > > > +bool migrate_use_main_zero_page(void) > > +{ > > + /* MigrationState *s; */ > > + > > + /* s = migrate_get_current(); */ > > + > > + /* > > + * We will enable this when we add the right code. > > + * return s->enabled_capabilities[MIGRATION_CAPABILITY_MAIN_ZERO_PAGE]; > > + */ > > + return true; > > +} > > + > > bool migrate_pause_before_switchover(void) > > { > > MigrationState *s = migrate_get_current(); > > diff --git a/migration/options.h b/migration/options.h > > index 246c160aee..c901eb57c6 100644 > > --- a/migration/options.h > > +++ b/migration/options.h > > @@ -88,6 +88,7 @@ int migrate_multifd_channels(void); > > MultiFDCompression migrate_multifd_compression(void); > > int migrate_multifd_zlib_level(void); > > int migrate_multifd_zstd_level(void); > > +bool migrate_use_main_zero_page(void); > > uint8_t migrate_throttle_trigger_threshold(void); > > const char *migrate_tls_authz(void); > > const char *migrate_tls_creds(void); > > diff --git a/qapi/migration.json b/qapi/migration.json > > index eb2f883513..80c4b13516 100644 > > --- a/qapi/migration.json > > +++ b/qapi/migration.json > > @@ -531,6 +531,12 @@ > > # and can result in more stable read performance. Requires KVM > > # with accelerator property "dirty-ring-size" set. (Since 8.1) > > # > > +# > > +# @main-zero-page: If enabled, the detection of zero pages will be > > +# done on the main thread. Otherwise it is done on > > +# the multifd threads. > > +# (since 8.2) > > +# > > # Features: > > # > > # @deprecated: Member @block is deprecated. Use blockdev-mirror with > > @@ -555,7 +561,7 @@ > > { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] }, > > 'validate-uuid', 'background-snapshot', > > 'zero-copy-send', 'postcopy-preempt', 'switchover-ack', > > - 'dirty-limit'] } > > + 'dirty-limit', 'main-zero-page'] } > > > > ## > > # @MigrationCapabilityStatus: > > I'll extract this zero page work into a separate series and submit for > review soon. I want to get people's opinion on it independently of this > series.
Sounds good. Thanks.