diff options
| author | Li Qiang <liq3ea@gmail.com> | 2018-08-01 06:00:20 -0700 |
|---|---|---|
| committer | Juan Quintela <quintela@redhat.com> | 2018-08-22 11:42:34 +0200 |
| commit | 4cbc9c7ffd95d2702cf7ffb3bfdf3f1f0ffdca07 (patch) | |
| tree | c801c82f52bf803b7eae1fc360bc665ade81f26b /migration/ram.c | |
| parent | 3eb21fe9e5a06e485dbb27838422ef85f4ae7967 (diff) | |
| download | focaccia-qemu-4cbc9c7ffd95d2702cf7ffb3bfdf3f1f0ffdca07.tar.gz focaccia-qemu-4cbc9c7ffd95d2702cf7ffb3bfdf3f1f0ffdca07.zip | |
migrate/cpu-throttle: Add max-cpu-throttle migration parameter
Currently, the default maximum CPU throttle for migration is 99(CPU_THROTTLE_PCT_MAX). This is too big and can make a remarkable performance effect for the guest. We see a lot of packets latency exceed 500ms when the CPU_THROTTLE_PCT_MAX reached. This patch set adds a new max-cpu-throttle parameter to limit the CPU throttle. Signed-off-by: Li Qiang <liq3ea@gmail.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/ram.c')
| -rw-r--r-- | migration/ram.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/migration/ram.c b/migration/ram.c index fa79d0a5b9..1e5c45a514 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1391,13 +1391,15 @@ static void mig_throttle_guest_down(void) MigrationState *s = migrate_get_current(); uint64_t pct_initial = s->parameters.cpu_throttle_initial; uint64_t pct_icrement = s->parameters.cpu_throttle_increment; + int pct_max = s->parameters.max_cpu_throttle; /* We have not started throttling yet. Let's start it. */ if (!cpu_throttle_active()) { cpu_throttle_set(pct_initial); } else { /* Throttling already on, just increase the rate */ - cpu_throttle_set(cpu_throttle_get_percentage() + pct_icrement); + cpu_throttle_set(MIN(cpu_throttle_get_percentage() + pct_icrement, + pct_max)); } } |