qapi: Add burst length fields to BlockDeviceInfo

This patch adds the new bps_*_max_length and iops_*_max_length
parameters to the BlockDeviceInfo struct.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Alberto Garcia 2016-02-18 12:27:04 +02:00 committed by Kevin Wolf
parent dce13204a0
commit 398befdf50
2 changed files with 53 additions and 6 deletions

View file

@ -92,6 +92,26 @@ BlockDeviceInfo *bdrv_block_device_info(BlockDriverState *bs, Error **errp)
info->has_iops_wr_max = cfg.buckets[THROTTLE_OPS_WRITE].max;
info->iops_wr_max = cfg.buckets[THROTTLE_OPS_WRITE].max;
info->has_bps_max_length = info->has_bps_max;
info->bps_max_length =
cfg.buckets[THROTTLE_BPS_TOTAL].burst_length;
info->has_bps_rd_max_length = info->has_bps_rd_max;
info->bps_rd_max_length =
cfg.buckets[THROTTLE_BPS_READ].burst_length;
info->has_bps_wr_max_length = info->has_bps_wr_max;
info->bps_wr_max_length =
cfg.buckets[THROTTLE_BPS_WRITE].burst_length;
info->has_iops_max_length = info->has_iops_max;
info->iops_max_length =
cfg.buckets[THROTTLE_OPS_TOTAL].burst_length;
info->has_iops_rd_max_length = info->has_iops_rd_max;
info->iops_rd_max_length =
cfg.buckets[THROTTLE_OPS_READ].burst_length;
info->has_iops_wr_max_length = info->has_iops_wr_max;
info->iops_wr_max_length =
cfg.buckets[THROTTLE_OPS_WRITE].burst_length;
info->has_iops_size = cfg.op_size;
info->iops_size = cfg.op_size;

View file

@ -273,17 +273,41 @@
#
# @image: the info of image used (since: 1.6)
#
# @bps_max: #optional total max in bytes (Since 1.7)
# @bps_max: #optional total throughput limit during bursts,
# in bytes (Since 1.7)
#
# @bps_rd_max: #optional read max in bytes (Since 1.7)
# @bps_rd_max: #optional read throughput limit during bursts,
# in bytes (Since 1.7)
#
# @bps_wr_max: #optional write max in bytes (Since 1.7)
# @bps_wr_max: #optional write throughput limit during bursts,
# in bytes (Since 1.7)
#
# @iops_max: #optional total I/O operations max (Since 1.7)
# @iops_max: #optional total I/O operations per second during bursts,
# in bytes (Since 1.7)
#
# @iops_rd_max: #optional read I/O operations max (Since 1.7)
# @iops_rd_max: #optional read I/O operations per second during bursts,
# in bytes (Since 1.7)
#
# @iops_wr_max: #optional write I/O operations max (Since 1.7)
# @iops_wr_max: #optional write I/O operations per second during bursts,
# in bytes (Since 1.7)
#
# @bps_max_length: #optional maximum length of the @bps_max burst
# period, in seconds. (Since 2.6)
#
# @bps_rd_max_length: #optional maximum length of the @bps_rd_max
# burst period, in seconds. (Since 2.6)
#
# @bps_wr_max_length: #optional maximum length of the @bps_wr_max
# burst period, in seconds. (Since 2.6)
#
# @iops_max_length: #optional maximum length of the @iops burst
# period, in seconds. (Since 2.6)
#
# @iops_rd_max_length: #optional maximum length of the @iops_rd_max
# burst period, in seconds. (Since 2.6)
#
# @iops_wr_max_length: #optional maximum length of the @iops_wr_max
# burst period, in seconds. (Since 2.6)
#
# @iops_size: #optional an I/O size in bytes (Since 1.7)
#
@ -308,6 +332,9 @@
'*bps_max': 'int', '*bps_rd_max': 'int',
'*bps_wr_max': 'int', '*iops_max': 'int',
'*iops_rd_max': 'int', '*iops_wr_max': 'int',
'*bps_max_length': 'int', '*bps_rd_max_length': 'int',
'*bps_wr_max_length': 'int', '*iops_max_length': 'int',
'*iops_rd_max_length': 'int', '*iops_wr_max_length': 'int',
'*iops_size': 'int', '*group': 'str', 'cache': 'BlockdevCacheInfo',
'write_threshold': 'int' } }