qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 9/9] throttle: add name of ThrottleGroup to BlockDev


From: Alberto Garcia
Subject: [Qemu-devel] [PATCH 9/9] throttle: add name of ThrottleGroup to BlockDeviceInfo
Date: Fri, 13 Feb 2015 18:06:17 +0200

Replace also throttle_group_compare() with throttle_group_get_name()

Signed-off-by: Alberto Garcia <address@hidden>
---
 block.c                         |  2 +-
 block/qapi.c                    |  5 +++++
 block/throttle-groups.c         | 14 ++++----------
 hmp.c                           |  6 ++++--
 include/block/throttle-groups.h |  2 +-
 qapi/block-core.json            |  4 +++-
 6 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/block.c b/block.c
index 625f1c8..a53cb76 100644
--- a/block.c
+++ b/block.c
@@ -271,7 +271,7 @@ void bdrv_io_limits_update_group(BlockDriverState *bs, 
const char *group)
     }
 
     /* this bs is a part of the same group than the one we want */
-    if (throttle_group_compare(bs->throttle_state, group)) {
+    if (!g_strcmp0(throttle_group_get_name(bs->throttle_state), group)) {
         return;
     }
 
diff --git a/block/qapi.c b/block/qapi.c
index 9ed3e68..3d61bab 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -64,9 +64,11 @@ BlockDeviceInfo *bdrv_block_device_info(BlockDriverState *bs)
 
     if (bs->io_limits_enabled) {
         ThrottleConfig cfg;
+        char *group_name;
 
         throttle_group_lock(bs->throttle_state);
         throttle_get_config(bs->throttle_state, &cfg);
+        group_name = g_strdup(throttle_group_get_name(bs->throttle_state));
         throttle_group_unlock(bs->throttle_state);
 
         info->bps     = cfg.buckets[THROTTLE_BPS_TOTAL].avg;
@@ -93,6 +95,9 @@ BlockDeviceInfo *bdrv_block_device_info(BlockDriverState *bs)
 
         info->has_iops_size = cfg.op_size;
         info->iops_size = cfg.op_size;
+
+        info->has_group = true;
+        info->group = group_name;
     }
 
     info->write_threshold = bdrv_write_threshold_get(bs);
diff --git a/block/throttle-groups.c b/block/throttle-groups.c
index 399ae5e..98c0a5e 100644
--- a/block/throttle-groups.c
+++ b/block/throttle-groups.c
@@ -117,21 +117,15 @@ bool throttle_group_unref(ThrottleState *ts)
     return true;
 }
 
-/* Compare a name with a given ThrottleState group name
+/* Get the name from a ThrottleState's ThrottleGroup
  *
  * @ts:   the throttle state whose group we are inspecting
- * @name: the name to compare
- * @ret:  true if names are equal else false
+ * @ret:  the name of the group
  */
-bool throttle_group_compare(ThrottleState *ts, const char *name)
+const char *throttle_group_get_name(ThrottleState *ts)
 {
     ThrottleGroup *tg = container_of(ts, ThrottleGroup, ts);
-
-    if (!name) {
-        return false;
-    }
-
-    return !strcmp(name, tg->name);
+    return tg->name;
 }
 
 /* Register a BlockDriverState in the doubly linked list
diff --git a/hmp.c b/hmp.c
index 47663ce..ae3ef15 100644
--- a/hmp.c
+++ b/hmp.c
@@ -369,7 +369,8 @@ static void print_block_info(Monitor *mon, BlockInfo *info,
                         " iops_max=%" PRId64
                         " iops_rd_max=%" PRId64
                         " iops_wr_max=%" PRId64
-                        " iops_size=%" PRId64 "\n",
+                        " iops_size=%" PRId64
+                        " group=%s\n",
                         inserted->bps,
                         inserted->bps_rd,
                         inserted->bps_wr,
@@ -382,7 +383,8 @@ static void print_block_info(Monitor *mon, BlockInfo *info,
                         inserted->iops_max,
                         inserted->iops_rd_max,
                         inserted->iops_wr_max,
-                        inserted->iops_size);
+                        inserted->iops_size,
+                        inserted->group);
     }
 
     if (verbose) {
diff --git a/include/block/throttle-groups.h b/include/block/throttle-groups.h
index d000067..8f8d285 100644
--- a/include/block/throttle-groups.h
+++ b/include/block/throttle-groups.h
@@ -29,7 +29,7 @@
 ThrottleState *throttle_group_incref(const char *name);
 bool throttle_group_unref(ThrottleState *ts);
 
-bool throttle_group_compare(ThrottleState *ts, const char *name);
+const char *throttle_group_get_name(ThrottleState *ts);
 
 void throttle_group_register_bs(ThrottleState *ts, BlockDriverState *bs);
 BlockDriverState *throttle_group_next_bs(BlockDriverState *bs);
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 563b11f..5653924 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -255,6 +255,8 @@
 #
 # @iops_size: #optional an I/O size in bytes (Since 1.7)
 #
+# @group: #optional throttle group name (Since 2.3)
+#
 # @cache: the cache mode used for the block device (since: 2.3)
 #
 # @write_threshold: configured write threshold for the device.
@@ -274,7 +276,7 @@
             '*bps_max': 'int', '*bps_rd_max': 'int',
             '*bps_wr_max': 'int', '*iops_max': 'int',
             '*iops_rd_max': 'int', '*iops_wr_max': 'int',
-            '*iops_size': 'int', 'cache': 'BlockdevCacheInfo',
+            '*iops_size': 'int', '*group': 'str', 'cache': 'BlockdevCacheInfo',
             'write_threshold': 'int' } }
 
 ##
-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]