[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 2/6] qmp: Create IOThrottle structure
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v7 2/6] qmp: Create IOThrottle structure |
Date: |
Thu, 06 Jul 2017 19:55:56 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Pradeep Jagadeesh <address@hidden> writes:
> This patch enables qmp interfaces for the fsdev
> devices. This provides two interfaces one
> for querying info of all the fsdev devices. The second one
> to set the IO limits for the required fsdev device.
>
> Signed-off-by: Pradeep Jagadeesh <address@hidden>
> Reviewed-by: Greg Kurz <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> Reviewed-by: Alberto Garcia <address@hidden>
> ---
> qapi/block-core.json | 76 ++-------------------------------------------
> qapi/iothrottle.json | 88
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 91 insertions(+), 73 deletions(-)
> create mode 100644 qapi/iothrottle.json
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index f85c223..9320974 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -6,6 +6,7 @@
>
> # QAPI common definitions
> { 'include': 'common.json' }
> +{ 'include': 'iothrottle.json' }
>
> ##
> # @SnapshotInfo:
> @@ -1761,84 +1762,13 @@
> #
> # @device: Block device name (deprecated, use @id instead)
> #
> -# @id: The name or QOM path of the guest device (since: 2.8)
> -#
> -# @bps: total throughput limit in bytes per second
> -#
> -# @bps_rd: read throughput limit in bytes per second
> -#
> -# @bps_wr: write throughput limit in bytes per second
> -#
> -# @iops: total I/O operations per second
> -#
> -# @iops_rd: read I/O operations per second
> -#
> -# @iops_wr: write I/O operations per second
> -#
> -# @bps_max: total throughput limit during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @bps_rd_max: read throughput limit during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @bps_wr_max: write throughput limit during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @iops_max: total I/O operations per second during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @iops_rd_max: read I/O operations per second during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @iops_wr_max: write I/O operations per second during bursts,
> -# in bytes (Since 1.7)
> -#
> -# @bps_max_length: maximum length of the @bps_max burst
> -# period, in seconds. It must only
> -# be set if @bps_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @bps_rd_max_length: maximum length of the @bps_rd_max
> -# burst period, in seconds. It must only
> -# be set if @bps_rd_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @bps_wr_max_length: maximum length of the @bps_wr_max
> -# burst period, in seconds. It must only
> -# be set if @bps_wr_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @iops_max_length: maximum length of the @iops burst
> -# period, in seconds. It must only
> -# be set if @iops_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @iops_rd_max_length: maximum length of the @iops_rd_max
> -# burst period, in seconds. It must only
> -# be set if @iops_rd_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @iops_wr_max_length: maximum length of the @iops_wr_max
> -# burst period, in seconds. It must only
> -# be set if @iops_wr_max is set as well.
> -# Defaults to 1. (Since 2.6)
> -#
> -# @iops_size: an I/O size in bytes (Since 1.7)
> -#
> # @group: throttle group name (Since 2.4)
> #
> # Since: 1.1
> ##
> { 'struct': 'BlockIOThrottle',
> - 'data': { '*device': 'str', '*id': 'str', 'bps': 'int', 'bps_rd': 'int',
> - 'bps_wr': 'int', 'iops': 'int', 'iops_rd': 'int', 'iops_wr':
> 'int',
> - '*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' } }
> + 'base': 'IOThrottle',
> + 'data': { '*device': 'str', '*group': 'str' } }
>
> ##
> # @block-stream:
> diff --git a/qapi/iothrottle.json b/qapi/iothrottle.json
> new file mode 100644
> index 0000000..0f067c3
> --- /dev/null
> +++ b/qapi/iothrottle.json
> @@ -0,0 +1,88 @@
> +# -*- Mode: Python -*-
> +
> +##
> +# == QAPI IOThrottle definitions
> +##
> +
> +##
> +# @IOThrottle:
> +#
> +# A set of parameters describing IO throttling
> +#
> +# @id: The name or QOM path of the guest device (since: 2.8)
> +#
> +# @bps: total throughput limit in bytes per second
> +#
> +# @bps_rd: read throughput limit in bytes per second
> +#
> +# @bps_wr: write throughput limit in bytes per second
> +#
> +# @iops: total I/O operations per second
> +#
> +# @iops_rd: read I/O operations per second
> +#
> +# @iops_wr: write I/O operations per second
> +#
> +# @bps_max: total throughput limit during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @bps_rd_max: read throughput limit during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @bps_wr_max: write throughput limit during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @iops_max: total I/O operations per second during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @iops_rd_max: read I/O operations per second during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @iops_wr_max: write I/O operations per second during bursts,
> +# in bytes (Since 1.7)
> +#
> +# @bps_max_length: maximum length of the @bps_max burst
> +# period, in seconds. It must only
> +# be set if @bps_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @bps_rd_max_length: maximum length of the @bps_rd_max
> +# burst period, in seconds. It must only
> +# be set if @bps_rd_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @bps_wr_max_length: maximum length of the @bps_wr_max
> +# burst period, in seconds. It must only
> +# be set if @bps_wr_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @iops_max_length: maximum length of the @iops burst
> +# period, in seconds. It must only
> +# be set if @iops_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @iops_rd_max_length: maximum length of the @iops_rd_max
> +# burst period, in seconds. It must only
> +# be set if @iops_rd_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @iops_wr_max_length: maximum length of the @iops_wr_max
> +# burst period, in seconds. It must only
> +# be set if @iops_wr_max is set as well.
> +# Defaults to 1. (Since 2.6)
> +#
> +# @iops_size: an I/O size in bytes (Since 1.7)
> +#
> +#
> +# Since: 2.10
> +##
> +{ 'struct': 'IOThrottle',
> + 'data': { '*id': 'str', 'bps': 'int', 'bps_rd': 'int',
> + 'bps_wr': 'int', 'iops': 'int', 'iops_rd': 'int', 'iops_wr':
> 'int',
> + '*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' } }
Awkward question for a v7, but here goes anyway: why is IOThrottle worth
its very own .json file?
Diff can't show the differences (if any), because you factor IOThrottle
out of BlockIOThrottle and move it in a single patch. I had to extract
and diff by hand.
- [Qemu-devel] [PATCH v7 0/6] fsdev: qmp interface for io throttling, Pradeep Jagadeesh, 2017/07/04
- [Qemu-devel] [PATCH v7 4/6] hmp: create a throttle initialization function for code reusability, Pradeep Jagadeesh, 2017/07/04
- [Qemu-devel] [PATCH v7 5/6] fsdev: hmp interface for throttling, Pradeep Jagadeesh, 2017/07/04
- [Qemu-devel] [PATCH v7 3/6] throttle: move out function to reuse the code, Pradeep Jagadeesh, 2017/07/04
- [Qemu-devel] [PATCH v7 2/6] qmp: Create IOThrottle structure, Pradeep Jagadeesh, 2017/07/04
- Re: [Qemu-devel] [PATCH v7 2/6] qmp: Create IOThrottle structure,
Markus Armbruster <=
- [Qemu-devel] [PATCH v7 1/6] throttle: factor out duplicate code, Pradeep Jagadeesh, 2017/07/04
- [Qemu-devel] [PATCH v7 6/6] fsdev: QMP interface for throttling, Pradeep Jagadeesh, 2017/07/04
- Re: [Qemu-devel] [PATCH v7 0/6] fsdev: qmp interface for io throttling, Markus Armbruster, 2017/07/07
- Re: [Qemu-devel] [PATCH v7 0/6] fsdev: qmp interface for io throttling, Manos Pitsidianakis, 2017/07/14