[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
[Qemu-devel] [PATCH 4/9] throttle: Prepare to have multiple timers for one ThrottleState, Alberto Garcia, 2015/02/13
[Qemu-devel] [PATCH 5/9] throttle: Add a way to know if throttle_schedule_timer had armed a timer, Alberto Garcia, 2015/02/13
[Qemu-devel] [PATCH 7/9] throttle: Add throttle group support, Alberto Garcia, 2015/02/13