diff mbox

[v3,4/5] qmp/hmp: Add throttle ratio to query-migrate and info migrate

Message ID 1435254377-13322-5-git-send-email-jjherne@linux.vnet.ibm.com
State New
Headers show

Commit Message

Jason J. Herne June 25, 2015, 5:46 p.m. UTC
Report throttle percentage in info migrate and query-migrate responses when
cpu throttling is active.

Signed-off-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>
---
 hmp.c                 | 5 +++++
 migration/migration.c | 5 +++++
 qapi-schema.json      | 7 ++++++-
 3 files changed, 16 insertions(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert June 26, 2015, 6:32 p.m. UTC | #1
* Jason J. Herne (jjherne@linux.vnet.ibm.com) wrote:
> Report throttle percentage in info migrate and query-migrate responses when
> cpu throttling is active.
> 
> Signed-off-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  hmp.c                 | 5 +++++
>  migration/migration.c | 5 +++++
>  qapi-schema.json      | 7 ++++++-
>  3 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/hmp.c b/hmp.c
> index eb65998..36bc76e 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -229,6 +229,11 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
>                         info->xbzrle_cache->overflow);
>      }
>  
> +    if (info->has_x_cpu_throttle_percentage) {
> +        monitor_printf(mon, "cpu throttle percentage: %" PRIu64 "\n",
> +                       info->x_cpu_throttle_percentage);
> +    }
> +
>      qapi_free_MigrationInfo(info);
>      qapi_free_MigrationCapabilityStatusList(caps);
>  }
> diff --git a/migration/migration.c b/migration/migration.c
> index 7708c54..b29450a 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -274,6 +274,11 @@ MigrationInfo *qmp_query_migrate(Error **errp)
>              info->disk->total = blk_mig_bytes_total();
>          }
>  
> +        if (cpu_throttle_active()) {
> +            info->has_x_cpu_throttle_percentage = true;
> +            info->x_cpu_throttle_percentage = cpu_throttle_get_percentage();
> +        }
> +
>          get_xbzrle_cache_stats(info);
>          break;
>      case MIGRATION_STATUS_COMPLETED:
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 7dd324e..cd36256 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -474,6 +474,10 @@
>  #        may be expensive, but do not actually occur during the iterative
>  #        migration rounds themselves. (since 1.6)
>  #
> +# @x-cpu-throttle-percentage: #optional percentage of time guest cpus are being
> +#       throttled during auto-converge. This is only present when auto-converge
> +#       has started throttling guest cpus. (Since 2.4)
> +#
>  # Since: 0.14.0
>  ##
>  { 'struct': 'MigrationInfo',
> @@ -483,7 +487,8 @@
>             '*total-time': 'int',
>             '*expected-downtime': 'int',
>             '*downtime': 'int',
> -           '*setup-time': 'int'} }
> +           '*setup-time': 'int',
> +           '*x-cpu-throttle-percentage': 'int'} }
>  
>  ##
>  # @query-migrate
> -- 
> 1.9.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff mbox

Patch

diff --git a/hmp.c b/hmp.c
index eb65998..36bc76e 100644
--- a/hmp.c
+++ b/hmp.c
@@ -229,6 +229,11 @@  void hmp_info_migrate(Monitor *mon, const QDict *qdict)
                        info->xbzrle_cache->overflow);
     }
 
+    if (info->has_x_cpu_throttle_percentage) {
+        monitor_printf(mon, "cpu throttle percentage: %" PRIu64 "\n",
+                       info->x_cpu_throttle_percentage);
+    }
+
     qapi_free_MigrationInfo(info);
     qapi_free_MigrationCapabilityStatusList(caps);
 }
diff --git a/migration/migration.c b/migration/migration.c
index 7708c54..b29450a 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -274,6 +274,11 @@  MigrationInfo *qmp_query_migrate(Error **errp)
             info->disk->total = blk_mig_bytes_total();
         }
 
+        if (cpu_throttle_active()) {
+            info->has_x_cpu_throttle_percentage = true;
+            info->x_cpu_throttle_percentage = cpu_throttle_get_percentage();
+        }
+
         get_xbzrle_cache_stats(info);
         break;
     case MIGRATION_STATUS_COMPLETED:
diff --git a/qapi-schema.json b/qapi-schema.json
index 7dd324e..cd36256 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -474,6 +474,10 @@ 
 #        may be expensive, but do not actually occur during the iterative
 #        migration rounds themselves. (since 1.6)
 #
+# @x-cpu-throttle-percentage: #optional percentage of time guest cpus are being
+#       throttled during auto-converge. This is only present when auto-converge
+#       has started throttling guest cpus. (Since 2.4)
+#
 # Since: 0.14.0
 ##
 { 'struct': 'MigrationInfo',
@@ -483,7 +487,8 @@ 
            '*total-time': 'int',
            '*expected-downtime': 'int',
            '*downtime': 'int',
-           '*setup-time': 'int'} }
+           '*setup-time': 'int',
+           '*x-cpu-throttle-percentage': 'int'} }
 
 ##
 # @query-migrate