do { } while (0)
#endif
-/* Migration speed throttling */
-static int64_t max_throttle = (32 << 20);
+#define MAX_THROTTLE (32 << 20) /* Migration speed throttling */
static NotifierList migration_state_notifiers =
NOTIFIER_LIST_INITIALIZER(migration_state_notifiers);
{
static MigrationState current_migration = {
.state = MIG_STATE_SETUP,
+ .bandwidth_limit = MAX_THROTTLE,
};
return ¤t_migration;
migrate_fd_put_ready(s);
}
-static MigrationState *migrate_init(Monitor *mon, int64_t bandwidth_limit,
- int detach, int blk, int inc)
+static MigrationState *migrate_init(Monitor *mon, int detach, int blk, int inc)
{
MigrationState *s = migrate_get_current();
+ int64_t bandwidth_limit = s->bandwidth_limit;
memset(s, 0, sizeof(*s));
+ s->bandwidth_limit = bandwidth_limit;
s->blk = blk;
s->shared = inc;
s->mon = NULL;
return -1;
}
- s = migrate_init(mon, max_throttle, detach, blk, inc);
+ s = migrate_init(mon, detach, blk, inc);
if (strstart(uri, "tcp:", &p)) {
ret = tcp_start_outgoing_migration(s, p);
if (d < 0) {
d = 0;
}
- max_throttle = d;
s = migrate_get_current();
- qemu_file_set_rate_limit(s->file, max_throttle);
+ s->bandwidth_limit = d;
+ qemu_file_set_rate_limit(s->file, s->bandwidth_limit);
return 0;
}