[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 09/31] qapi/qom: Add ObjectOptions for throttle-group
From: |
Eric Blake |
Subject: |
Re: [PATCH v2 09/31] qapi/qom: Add ObjectOptions for throttle-group |
Date: |
Fri, 26 Feb 2021 11:26:19 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
On 2/24/21 7:52 AM, Kevin Wolf wrote:
> This adds a QAPI schema for the properties of the throttle-group object.
>
> The only purpose of the x-* properties is to make the nested options in
> 'limits' available for a command line parser that doesn't support
> structs. Any parser that will use the QAPI schema will supports structs,
> though, so they will not be needed in the schema in the future.
>
> To keep the conversion straightforward, add them to the schema anyway.
> We can then remove the options and adjust documentation, test cases etc.
> in a separate patch.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> qapi/block-core.json | 27 +++++++++++++++++++++++++++
> qapi/qom.json | 7 +++++--
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 9f555d5c1d..a67fa0cc59 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -2504,6 +2504,33 @@
> '*bps-write-max' : 'int', '*bps-write-max-length' : 'int',
> '*iops-size' : 'int' } }
>
> +##
> +# @ThrottleGroupProperties:
> +#
> +# Properties for throttle-group objects.
Corresponds to block/throttle-groups.c:throttle_group_obj_class_init()
with its ThrottleParamInfo struct for the x- fields, and limits as-is.
> +#
> +# The options starting with x- are aliases for the same key without x- in
> +# the @limits object. As indicated by the x- prefix, this is not a stable
> +# interface and may be removed or changed incompatibly in the future. Use
> +# @limits for a supported stable interface.
> +#
> +# @limits: limits to apply for this throttle group
And I did check that qapi/block-core.json:ThrottleLimits has the same
fields as the ThrottleParamInfo x- fields. All this duplication! But
we're getting to a state where it will be easier to clean up the cruft.
> +#
> +# Since: 2.11
> +##
> +{ 'struct': 'ThrottleGroupProperties',
> + 'data': { '*limits': 'ThrottleLimits',
> + '*x-iops-total' : 'int', '*x-iops-total-max' : 'int',
> + '*x-iops-total-max-length' : 'int', '*x-iops-read' : 'int',
> + '*x-iops-read-max' : 'int', '*x-iops-read-max-length' : 'int',
> + '*x-iops-write' : 'int', '*x-iops-write-max' : 'int',
> + '*x-iops-write-max-length' : 'int', '*x-bps-total' : 'int',
> + '*x-bps-total-max' : 'int', '*x-bps-total-max-length' : 'int',
> + '*x-bps-read' : 'int', '*x-bps-read-max' : 'int',
> + '*x-bps-read-max-length' : 'int', '*x-bps-write' : 'int',
> + '*x-bps-write-max' : 'int', '*x-bps-write-max-length' : 'int',
> + '*x-iops-size' : 'int' } }
> +
> ##
> # @block-stream:
> #
> diff --git a/qapi/qom.json b/qapi/qom.json
> index 73f28f9608..449dca8ec5 100644
> --- a/qapi/qom.json
> +++ b/qapi/qom.json
> @@ -5,6 +5,7 @@
> # See the COPYING file in the top-level directory.
>
> { 'include': 'authz.json' }
> +{ 'include': 'block-core.json' }
> { 'include': 'common.json' }
>
> ##
> @@ -447,7 +448,8 @@
> 'memory-backend-ram',
> 'rng-builtin',
> 'rng-egd',
> - 'rng-random'
> + 'rng-random',
> + 'throttle-group'
> ] }
>
> ##
> @@ -480,7 +482,8 @@
> 'memory-backend-ram': 'MemoryBackendProperties',
> 'rng-builtin': 'RngProperties',
> 'rng-egd': 'RngEgdProperties',
> - 'rng-random': 'RngRandomProperties'
> + 'rng-random': 'RngRandomProperties',
> + 'throttle-group': 'ThrottleGroupProperties'
> } }
>
> ##
>
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
- Re: [PATCH v2 21/31] qemu-storage-daemon: Implement --object with qmp_object_add(), (continued)
- [PATCH v2 20/31] qom: Make "object" QemuOptsList optional, Kevin Wolf, 2021/02/24
- [PATCH v2 17/31] qapi/qom: Add ObjectOptions for input-*, Kevin Wolf, 2021/02/24
- [PATCH v2 23/31] qom: Factor out user_creatable_process_cmdline(), Kevin Wolf, 2021/02/24
- [PATCH v2 11/31] qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded', Kevin Wolf, 2021/02/24
- [PATCH v2 09/31] qapi/qom: Add ObjectOptions for throttle-group, Kevin Wolf, 2021/02/24
- Re: [PATCH v2 09/31] qapi/qom: Add ObjectOptions for throttle-group,
Eric Blake <=
- [PATCH v2 04/31] qapi/qom: Add ObjectOptions for authz-*, Kevin Wolf, 2021/02/24
- [PATCH v2 22/31] qom: Remove user_creatable_add_dict(), Kevin Wolf, 2021/02/24
- [PATCH v2 25/31] qemu-img: Use user_creatable_process_cmdline() for --object, Kevin Wolf, 2021/02/24
- [PATCH v2 28/31] hmp: QAPIfy object_add, Kevin Wolf, 2021/02/24