huang...@chinatelecom.cn writes: > From: Hyman Huang(黄勇) <huang...@chinatelecom.cn> > > Introduce migration dirty-limit capability, which can > be turned on before live migration and limit dirty > page rate durty live migration. > > Introduce migrate_dirty_limit function to help check > if dirty-limit capability enabled during live migration. > > Meanwhile, refactor vcpu_dirty_rate_stat_collect > so that period can be configured instead of hardcoded. > > dirty-limit capability is kind of like auto-converge > but using dirty limit instead of traditional cpu-throttle > to throttle guest down. To enable this feature, turn on > the dirty-limit capability before live migration using > migratioin-set-capabilities, and set the parameters
migrate-set-capabilities > "x-vcpu-dirty-limit-period", "vcpu-dirty-limit" suitably > to speed up convergence. > > Signed-off-by: Hyman Huang(黄勇) <huang...@chinatelecom.cn> > --- [...] > diff --git a/migration/migration.h b/migration/migration.h > index cdad8ac..7fbb9f8 100644 > --- a/migration/migration.h > +++ b/migration/migration.h > @@ -409,6 +409,7 @@ bool migrate_ignore_shared(void); > bool migrate_validate_uuid(void); > > bool migrate_auto_converge(void); > +bool migrate_dirty_limit(void); > bool migrate_use_multifd(void); > bool migrate_pause_before_switchover(void); > int migrate_multifd_channels(void); > diff --git a/qapi/migration.json b/qapi/migration.json > index dd667dd..af6b2da 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -477,6 +477,8 @@ > # will be handled faster. This is a performance feature > and > # should not affect the correctness of postcopy migration. > # (since 7.1) > +# @dirty-limit: Use dirty-limit to throttle down guest if enabled. > +# (since 7.1) 8.0 > # > # Features: > # @unstable: Members @x-colo and @x-ignore-shared are experimental. > @@ -492,7 +494,7 @@ > 'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate', > { 'name': 'x-ignore-shared', 'features': [ 'unstable' ] }, > 'validate-uuid', 'background-snapshot', > - 'zero-copy-send', 'postcopy-preempt'] } > + 'zero-copy-send', 'postcopy-preempt', 'dirty-limit'] } > > ## > # @MigrationCapabilityStatus: [...]