aboutsummaryrefslogtreecommitdiff
path: root/migration/migration.c
diff options
context:
space:
mode:
authorHyman Huang(黄勇) <yong.huang@smartx.com>2023-06-08 00:12:40 +0800
committerJuan Quintela <quintela@redhat.com>2023-07-26 10:55:56 +0200
commitacac51ba246ad1046c69de9e0b1a7e8523e2de99 (patch)
tree760261d865e26c97e1178e2d9aebecad9ca288e3 /migration/migration.c
parent310ad5625e107568a0204ec1e1623e267fad3a9a (diff)
downloadqemu-acac51ba246ad1046c69de9e0b1a7e8523e2de99.zip
qemu-acac51ba246ad1046c69de9e0b1a7e8523e2de99.tar.gz
qemu-acac51ba246ad1046c69de9e0b1a7e8523e2de99.tar.bz2
migration: Implement dirty-limit convergence algo
Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Enable dirty page limit if dirty_rate_high_cnt greater than 2 when dirty-limit capability enabled, Disable dirty-limit if migration be canceled. Note that "set_vcpu_dirty_limit", "cancel_vcpu_dirty_limit" commands are not allowed during dirty-limit live migration. Signed-off-by: Hyman Huang(黄勇) <yong.huang@smartx.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-ID: <168733225273.5845.15871826788879741674-7@git.sr.ht> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r--migration/migration.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index ae49d42..4933225 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -166,6 +166,9 @@ void migration_cancel(const Error *error)
if (error) {
migrate_set_error(current_migration, error);
}
+ if (migrate_dirty_limit()) {
+ qmp_cancel_vcpu_dirty_limit(false, -1, NULL);
+ }
migrate_fd_cancel(current_migration);
}