Re: [PATCH v2 09/31] qapi/qom: Add ObjectOptions for throttle-group

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

 



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@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxx>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux