[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 3/5] migration: Dynamic cpu throttling for au
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v5 3/5] migration: Dynamic cpu throttling for auto-converge |
Date: |
Tue, 1 Sep 2015 15:30:51 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 |
On 09/01/2015 08:46 AM, Jason J. Herne wrote:
> Remove traditional auto-converge static 30ms throttling code and replace it
> with a dynamic throttling algorithm.
>
> Additionally, be more aggressive when deciding when to start throttling.
> Previously we waited until four unproductive memory passes. Now we begin
> throttling after only two unproductive memory passes. Four seemed quite
> arbitrary and only waiting for two passes allows us to complete the migration
> faster.
>
> Signed-off-by: Jason J. Herne <address@hidden>
> Reviewed-by: Matthew Rosato <address@hidden>
> ---
> arch_init.c | 88
> ++++++++++++++++++---------------------------------
> migration/migration.c | 4 +++
> 2 files changed, 34 insertions(+), 58 deletions(-)
> +static void mig_throttle_guest_down(void)
> +{
> + MigrationState *s = migrate_get_current();
> + uint64_t pct_initial =
> + s->parameters[MIGRATION_PARAMETER_X_CPU_THROTTLE_INITIAL];
> + uint64_t pct_icrement =
> + s->parameters[MIGRATION_PARAMETER_X_CPU_THROTTLE_INCREMENT];
> +
> + /* 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);
What happens if the addition results in a percentage larger than 99?
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v5 5/5] migration: Disambiguate MAX_THROTTLE, (continued)