diff mbox

[2/2,v16] throttle: factor out duplicate code

Message ID 1486123043-26493-3-git-send-email-pradeep.jagadeesh@huawei.com
State New
Headers show

Commit Message

Pradeep Jagadeesh Feb. 3, 2017, 11:57 a.m. UTC
This patch removes the redundant throttle code that was present in
block and fsdev device files. Now the common code is moved
to a single file.

Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>

https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
---
 blockdev.c                      | 81 ++----------------------------------
 fsdev/qemu-fsdev-opts.c         | 80 ++---------------------------------
 include/qemu/throttle-options.h | 92 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 100 insertions(+), 153 deletions(-)
 create mode 100644 include/qemu/throttle-options.h

Comments

Alberto Garcia Feb. 3, 2017, 12:22 p.m. UTC | #1
On Fri 03 Feb 2017 12:57:23 PM CET, Pradeep Jagadeesh wrote:
> This patch removes the redundant throttle code that was present in
> block and fsdev device files. Now the common code is moved
> to a single file.
>
> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>

Reviewed-by: Alberto Garcia <berto@igalia.com>

> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html

This line doesn't belong in the commit message.

Berto
Pradeep Jagadeesh Feb. 3, 2017, 12:27 p.m. UTC | #2
On 2/3/2017 1:22 PM, Alberto Garcia wrote:
> On Fri 03 Feb 2017 12:57:23 PM CET, Pradeep Jagadeesh wrote:
>> This patch removes the redundant throttle code that was present in
>> block and fsdev device files. Now the common code is moved
>> to a single file.
>>
>> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>
>
> Reviewed-by: Alberto Garcia <berto@igalia.com>
>
>> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
>
> This line doesn't belong in the commit message.
>

There is one false positive error in the second patch. So Greg asked me 
to put this line after SoB. Just to say that I had a positive review 
comment.

Regards.
Pradeep

> Berto
>
Alberto Garcia Feb. 3, 2017, 12:44 p.m. UTC | #3
On Fri 03 Feb 2017 01:27:25 PM CET, Pradeep Jagadeesh wrote:

>>> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>
>>
>> Reviewed-by: Alberto Garcia <berto@igalia.com>
>>
>>> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
>>
>> This line doesn't belong in the commit message.
>
> There is one false positive error in the second patch. So Greg asked
> me to put this line after SoB. Just to say that I had a positive
> review comment.

The false positive is not related to what Greg said :-) What you have to
put is not that URL but the Reviewed-by: line with Stefan's name and
e-mail.

Berto
Pradeep Jagadeesh Feb. 3, 2017, 12:46 p.m. UTC | #4
On 2/3/2017 1:44 PM, Alberto Garcia wrote:
> On Fri 03 Feb 2017 01:27:25 PM CET, Pradeep Jagadeesh wrote:
>
>>>> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>
>>>
>>> Reviewed-by: Alberto Garcia <berto@igalia.com>
>>>
>>>> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
>>>
>>> This line doesn't belong in the commit message.
>>
>> There is one false positive error in the second patch. So Greg asked
>> me to put this line after SoB. Just to say that I had a positive
>> review comment.
>
> The false positive is not related to what Greg said :-) What you have to
> put is not that URL but the Reviewed-by: line with Stefan's name and
> e-mail.

Haha OK. I will change it and send new patch set again.

-Pradeep
>
> Berto
>
Alberto Garcia Feb. 3, 2017, 12:53 p.m. UTC | #5
On Fri 03 Feb 2017 01:46:31 PM CET, Pradeep Jagadeesh wrote:
>> The false positive is not related to what Greg said :-) What you have
>> to put is not that URL but the Reviewed-by: line with Stefan's name
>> and e-mail.
>
> Haha OK. I will change it and send new patch set again.

I don't know if it's necessary now, but if you need to send the patch
again you have to keep your Signed-off-by line and my and Stefan's
Reviewed-by lines.

Berto
Pradeep Jagadeesh Feb. 3, 2017, 12:57 p.m. UTC | #6
On 2/3/2017 1:53 PM, Alberto Garcia wrote:
> On Fri 03 Feb 2017 01:46:31 PM CET, Pradeep Jagadeesh wrote:
>>> The false positive is not related to what Greg said :-) What you have
>>> to put is not that URL but the Reviewed-by: line with Stefan's name
>>> and e-mail.
>>
>> Haha OK. I will change it and send new patch set again.
>
> I don't know if it's necessary now, but if you need to send the patch
> again you have to keep your Signed-off-by line and my and Stefan's
> Reviewed-by lines.

OK sure!. If it is required, then I will add Reviewed by Line.

Regards,
Pradeep
>
> Berto
>
Greg Kurz Feb. 6, 2017, 2:58 p.m. UTC | #7
On Fri,  3 Feb 2017 06:57:23 -0500
Pradeep Jagadeesh <pradeepkiruvale@gmail.com> wrote:

> This patch removes the redundant throttle code that was present in
> block and fsdev device files. Now the common code is moved
> to a single file.
> 
> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>
> 
> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
> ---
>  blockdev.c                      | 81 ++----------------------------------
>  fsdev/qemu-fsdev-opts.c         | 80 ++---------------------------------
>  include/qemu/throttle-options.h | 92 +++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 100 insertions(+), 153 deletions(-)
>  create mode 100644 include/qemu/throttle-options.h
> 
> diff --git a/blockdev.c b/blockdev.c
> index 245e1e1..9320c8a 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -52,6 +52,7 @@
>  #include "sysemu/arch_init.h"
>  #include "qemu/cutils.h"
>  #include "qemu/help_option.h"
> +#include "qemu/throttle-options.h"
>  
>  static QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =
>      QTAILQ_HEAD_INITIALIZER(monitor_bdrv_states);
> @@ -3999,83 +4000,9 @@ QemuOptsList qemu_common_drive_opts = {
>              .name = BDRV_OPT_READ_ONLY,
>              .type = QEMU_OPT_BOOL,
>              .help = "open drive file as read-only",
> -        },{
> -            .name = "throttling.iops-total",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit total I/O operations per second",
> -        },{
> -            .name = "throttling.iops-read",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit read operations per second",
> -        },{
> -            .name = "throttling.iops-write",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit write operations per second",
> -        },{
> -            .name = "throttling.bps-total",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit total bytes per second",
> -        },{
> -            .name = "throttling.bps-read",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit read bytes per second",
> -        },{
> -            .name = "throttling.bps-write",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit write bytes per second",
> -        },{
> -            .name = "throttling.iops-total-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations burst",
> -        },{
> -            .name = "throttling.iops-read-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations read burst",
> -        },{
> -            .name = "throttling.iops-write-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations write burst",
> -        },{
> -            .name = "throttling.bps-total-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes burst",
> -        },{
> -            .name = "throttling.bps-read-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes read burst",
> -        },{
> -            .name = "throttling.bps-write-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes write burst",
> -        },{
> -            .name = "throttling.iops-total-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-total-max burst period, in seconds",
> -        },{
> -            .name = "throttling.iops-read-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-read-max burst period, in seconds",
> -        },{
> -            .name = "throttling.iops-write-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-write-max burst period, in seconds",
> -        },{
> -            .name = "throttling.bps-total-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-total-max burst period, in seconds",
> -        },{
> -            .name = "throttling.bps-read-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-read-max burst period, in seconds",
> -        },{
> -            .name = "throttling.bps-write-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-write-max burst period, in seconds",
> -        },{
> -            .name = "throttling.iops-size",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "when limiting by iops max size of an I/O in bytes",
> -        },{
> +        },
> +            THROTTLE_OPTS,
> +          {

Indent nit ^^. Also this could be surrounded by some empty lines as you
did in fsdev/qemu-fsdev-opts.c below.

I wouldn't ask you to send a v17 for this though and I've updated your
patch instead. I've also added Stefan's and Berto's Reviewed-by, and
pushed the whole series to my 9p-next tree at:

https://github.com/gkurz/qemu/commits/9p-next

Cheers.

--
Greg

>              .name = "throttling.group",
>              .type = QEMU_OPT_STRING,
>              .help = "name of the block throttling group",
> diff --git a/fsdev/qemu-fsdev-opts.c b/fsdev/qemu-fsdev-opts.c
> index 385423f0..bf57130 100644
> --- a/fsdev/qemu-fsdev-opts.c
> +++ b/fsdev/qemu-fsdev-opts.c
> @@ -9,6 +9,7 @@
>  #include "qemu/config-file.h"
>  #include "qemu/option.h"
>  #include "qemu/module.h"
> +#include "qemu/throttle-options.h"
>  
>  static QemuOptsList qemu_fsdev_opts = {
>      .name = "fsdev",
> @@ -37,83 +38,10 @@ static QemuOptsList qemu_fsdev_opts = {
>          }, {
>              .name = "sock_fd",
>              .type = QEMU_OPT_NUMBER,
> -        }, {
> -            .name = "throttling.iops-total",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit total I/O operations per second",
> -        }, {
> -            .name = "throttling.iops-read",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit read operations per second",
> -        }, {
> -            .name = "throttling.iops-write",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit write operations per second",
> -        }, {
> -            .name = "throttling.bps-total",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit total bytes per second",
> -        }, {
> -            .name = "throttling.bps-read",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit read bytes per second",
> -        }, {
> -            .name = "throttling.bps-write",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "limit write bytes per second",
> -        }, {
> -            .name = "throttling.iops-total-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations burst",
> -        }, {
> -            .name = "throttling.iops-read-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations read burst",
> -        }, {
> -            .name = "throttling.iops-write-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "I/O operations write burst",
> -        }, {
> -            .name = "throttling.bps-total-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes burst",
> -        }, {
> -            .name = "throttling.bps-read-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes read burst",
> -        }, {
> -            .name = "throttling.bps-write-max",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "total bytes write burst",
> -        }, {
> -            .name = "throttling.iops-total-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-total-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.iops-read-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-read-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.iops-write-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the iops-write-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.bps-total-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-total-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.bps-read-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-read-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.bps-write-max-length",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "length of the bps-write-max burst period, in seconds",
> -        }, {
> -            .name = "throttling.iops-size",
> -            .type = QEMU_OPT_NUMBER,
> -            .help = "when limiting by iops max size of an I/O in bytes",
>          },
> +
> +        THROTTLE_OPTS,
> +
>          { /*End of list */ }
>      },
>  };
> diff --git a/include/qemu/throttle-options.h b/include/qemu/throttle-options.h
> new file mode 100644
> index 0000000..3133d1c
> --- /dev/null
> +++ b/include/qemu/throttle-options.h
> @@ -0,0 +1,92 @@
> +/*
> + * QEMU throttling command line options
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * (at your option) any later version.
> + *
> + * See the COPYING file in the top-level directory for details.
> + *
> + */
> +#ifndef THROTTLE_OPTIONS_H
> +#define THROTTLE_OPTIONS_H
> +
> +#define THROTTLE_OPTS \
> +          { \
> +            .name = "throttling.iops-total",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit total I/O operations per second",\
> +        },{ \
> +            .name = "throttling.iops-read",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit read operations per second",\
> +        },{ \
> +            .name = "throttling.iops-write",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit write operations per second",\
> +        },{ \
> +            .name = "throttling.bps-total",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit total bytes per second",\
> +        },{ \
> +            .name = "throttling.bps-read",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit read bytes per second",\
> +        },{ \
> +            .name = "throttling.bps-write",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "limit write bytes per second",\
> +        },{ \
> +            .name = "throttling.iops-total-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "I/O operations burst",\
> +        },{ \
> +            .name = "throttling.iops-read-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "I/O operations read burst",\
> +        },{ \
> +            .name = "throttling.iops-write-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "I/O operations write burst",\
> +        },{ \
> +            .name = "throttling.bps-total-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "total bytes burst",\
> +        },{ \
> +            .name = "throttling.bps-read-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "total bytes read burst",\
> +        },{ \
> +            .name = "throttling.bps-write-max",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "total bytes write burst",\
> +        },{ \
> +            .name = "throttling.iops-total-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the iops-total-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.iops-read-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the iops-read-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.iops-write-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the iops-write-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.bps-total-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the bps-total-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.bps-read-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the bps-read-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.bps-write-max-length",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "length of the bps-write-max burst period, in seconds",\
> +        },{ \
> +            .name = "throttling.iops-size",\
> +            .type = QEMU_OPT_NUMBER,\
> +            .help = "when limiting by iops max size of an I/O in bytes",\
> +        }
> +
> +#endif
Pradeep Jagadeesh Feb. 6, 2017, 3:19 p.m. UTC | #8
On 2/6/2017 3:58 PM, Greg Kurz wrote:
> On Fri,  3 Feb 2017 06:57:23 -0500
> Pradeep Jagadeesh <pradeepkiruvale@gmail.com> wrote:
>
>> This patch removes the redundant throttle code that was present in
>> block and fsdev device files. Now the common code is moved
>> to a single file.
>>
>> Signed-off-by: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com>
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg04637.html
>> ---
>>  blockdev.c                      | 81 ++----------------------------------
>>  fsdev/qemu-fsdev-opts.c         | 80 ++---------------------------------
>>  include/qemu/throttle-options.h | 92 +++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 100 insertions(+), 153 deletions(-)
>>  create mode 100644 include/qemu/throttle-options.h
>>
>> diff --git a/blockdev.c b/blockdev.c
>> index 245e1e1..9320c8a 100644
>> --- a/blockdev.c
>> +++ b/blockdev.c
>> @@ -52,6 +52,7 @@
>>  #include "sysemu/arch_init.h"
>>  #include "qemu/cutils.h"
>>  #include "qemu/help_option.h"
>> +#include "qemu/throttle-options.h"
>>
>>  static QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =
>>      QTAILQ_HEAD_INITIALIZER(monitor_bdrv_states);
>> @@ -3999,83 +4000,9 @@ QemuOptsList qemu_common_drive_opts = {
>>              .name = BDRV_OPT_READ_ONLY,
>>              .type = QEMU_OPT_BOOL,
>>              .help = "open drive file as read-only",
>> -        },{
>> -            .name = "throttling.iops-total",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit total I/O operations per second",
>> -        },{
>> -            .name = "throttling.iops-read",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit read operations per second",
>> -        },{
>> -            .name = "throttling.iops-write",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit write operations per second",
>> -        },{
>> -            .name = "throttling.bps-total",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit total bytes per second",
>> -        },{
>> -            .name = "throttling.bps-read",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit read bytes per second",
>> -        },{
>> -            .name = "throttling.bps-write",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit write bytes per second",
>> -        },{
>> -            .name = "throttling.iops-total-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations burst",
>> -        },{
>> -            .name = "throttling.iops-read-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations read burst",
>> -        },{
>> -            .name = "throttling.iops-write-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations write burst",
>> -        },{
>> -            .name = "throttling.bps-total-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes burst",
>> -        },{
>> -            .name = "throttling.bps-read-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes read burst",
>> -        },{
>> -            .name = "throttling.bps-write-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes write burst",
>> -        },{
>> -            .name = "throttling.iops-total-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-total-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.iops-read-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-read-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.iops-write-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-write-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.bps-total-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-total-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.bps-read-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-read-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.bps-write-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-write-max burst period, in seconds",
>> -        },{
>> -            .name = "throttling.iops-size",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "when limiting by iops max size of an I/O in bytes",
>> -        },{
>> +        },
>> +            THROTTLE_OPTS,
>> +          {
>
> Indent nit ^^. Also this could be surrounded by some empty lines as you
> did in fsdev/qemu-fsdev-opts.c below.
>
> I wouldn't ask you to send a v17 for this though and I've updated your
> patch instead. I've also added Stefan's and Berto's Reviewed-by, and
> pushed the whole series to my 9p-next tree at:
>
> https://github.com/gkurz/qemu/commits/9p-next

Thanks Greg for updating the patch!.

-Pradeep

>
> Cheers.
>
> --
> Greg
>
>>              .name = "throttling.group",
>>              .type = QEMU_OPT_STRING,
>>              .help = "name of the block throttling group",
>> diff --git a/fsdev/qemu-fsdev-opts.c b/fsdev/qemu-fsdev-opts.c
>> index 385423f0..bf57130 100644
>> --- a/fsdev/qemu-fsdev-opts.c
>> +++ b/fsdev/qemu-fsdev-opts.c
>> @@ -9,6 +9,7 @@
>>  #include "qemu/config-file.h"
>>  #include "qemu/option.h"
>>  #include "qemu/module.h"
>> +#include "qemu/throttle-options.h"
>>
>>  static QemuOptsList qemu_fsdev_opts = {
>>      .name = "fsdev",
>> @@ -37,83 +38,10 @@ static QemuOptsList qemu_fsdev_opts = {
>>          }, {
>>              .name = "sock_fd",
>>              .type = QEMU_OPT_NUMBER,
>> -        }, {
>> -            .name = "throttling.iops-total",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit total I/O operations per second",
>> -        }, {
>> -            .name = "throttling.iops-read",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit read operations per second",
>> -        }, {
>> -            .name = "throttling.iops-write",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit write operations per second",
>> -        }, {
>> -            .name = "throttling.bps-total",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit total bytes per second",
>> -        }, {
>> -            .name = "throttling.bps-read",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit read bytes per second",
>> -        }, {
>> -            .name = "throttling.bps-write",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "limit write bytes per second",
>> -        }, {
>> -            .name = "throttling.iops-total-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations burst",
>> -        }, {
>> -            .name = "throttling.iops-read-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations read burst",
>> -        }, {
>> -            .name = "throttling.iops-write-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "I/O operations write burst",
>> -        }, {
>> -            .name = "throttling.bps-total-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes burst",
>> -        }, {
>> -            .name = "throttling.bps-read-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes read burst",
>> -        }, {
>> -            .name = "throttling.bps-write-max",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "total bytes write burst",
>> -        }, {
>> -            .name = "throttling.iops-total-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-total-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.iops-read-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-read-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.iops-write-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the iops-write-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.bps-total-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-total-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.bps-read-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-read-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.bps-write-max-length",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "length of the bps-write-max burst period, in seconds",
>> -        }, {
>> -            .name = "throttling.iops-size",
>> -            .type = QEMU_OPT_NUMBER,
>> -            .help = "when limiting by iops max size of an I/O in bytes",
>>          },
>> +
>> +        THROTTLE_OPTS,
>> +
>>          { /*End of list */ }
>>      },
>>  };
>> diff --git a/include/qemu/throttle-options.h b/include/qemu/throttle-options.h
>> new file mode 100644
>> index 0000000..3133d1c
>> --- /dev/null
>> +++ b/include/qemu/throttle-options.h
>> @@ -0,0 +1,92 @@
>> +/*
>> + * QEMU throttling command line options
>> + *
>> + * This work is licensed under the terms of the GNU GPL, version 2 or
>> + * (at your option) any later version.
>> + *
>> + * See the COPYING file in the top-level directory for details.
>> + *
>> + */
>> +#ifndef THROTTLE_OPTIONS_H
>> +#define THROTTLE_OPTIONS_H
>> +
>> +#define THROTTLE_OPTS \
>> +          { \
>> +            .name = "throttling.iops-total",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit total I/O operations per second",\
>> +        },{ \
>> +            .name = "throttling.iops-read",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit read operations per second",\
>> +        },{ \
>> +            .name = "throttling.iops-write",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit write operations per second",\
>> +        },{ \
>> +            .name = "throttling.bps-total",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit total bytes per second",\
>> +        },{ \
>> +            .name = "throttling.bps-read",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit read bytes per second",\
>> +        },{ \
>> +            .name = "throttling.bps-write",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "limit write bytes per second",\
>> +        },{ \
>> +            .name = "throttling.iops-total-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "I/O operations burst",\
>> +        },{ \
>> +            .name = "throttling.iops-read-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "I/O operations read burst",\
>> +        },{ \
>> +            .name = "throttling.iops-write-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "I/O operations write burst",\
>> +        },{ \
>> +            .name = "throttling.bps-total-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "total bytes burst",\
>> +        },{ \
>> +            .name = "throttling.bps-read-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "total bytes read burst",\
>> +        },{ \
>> +            .name = "throttling.bps-write-max",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "total bytes write burst",\
>> +        },{ \
>> +            .name = "throttling.iops-total-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the iops-total-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.iops-read-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the iops-read-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.iops-write-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the iops-write-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.bps-total-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the bps-total-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.bps-read-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the bps-read-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.bps-write-max-length",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "length of the bps-write-max burst period, in seconds",\
>> +        },{ \
>> +            .name = "throttling.iops-size",\
>> +            .type = QEMU_OPT_NUMBER,\
>> +            .help = "when limiting by iops max size of an I/O in bytes",\
>> +        }
>> +
>> +#endif
>
diff mbox

Patch

diff --git a/blockdev.c b/blockdev.c
index 245e1e1..9320c8a 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -52,6 +52,7 @@ 
 #include "sysemu/arch_init.h"
 #include "qemu/cutils.h"
 #include "qemu/help_option.h"
+#include "qemu/throttle-options.h"
 
 static QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =
     QTAILQ_HEAD_INITIALIZER(monitor_bdrv_states);
@@ -3999,83 +4000,9 @@  QemuOptsList qemu_common_drive_opts = {
             .name = BDRV_OPT_READ_ONLY,
             .type = QEMU_OPT_BOOL,
             .help = "open drive file as read-only",
-        },{
-            .name = "throttling.iops-total",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit total I/O operations per second",
-        },{
-            .name = "throttling.iops-read",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit read operations per second",
-        },{
-            .name = "throttling.iops-write",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit write operations per second",
-        },{
-            .name = "throttling.bps-total",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit total bytes per second",
-        },{
-            .name = "throttling.bps-read",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit read bytes per second",
-        },{
-            .name = "throttling.bps-write",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit write bytes per second",
-        },{
-            .name = "throttling.iops-total-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations burst",
-        },{
-            .name = "throttling.iops-read-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations read burst",
-        },{
-            .name = "throttling.iops-write-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations write burst",
-        },{
-            .name = "throttling.bps-total-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes burst",
-        },{
-            .name = "throttling.bps-read-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes read burst",
-        },{
-            .name = "throttling.bps-write-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes write burst",
-        },{
-            .name = "throttling.iops-total-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-total-max burst period, in seconds",
-        },{
-            .name = "throttling.iops-read-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-read-max burst period, in seconds",
-        },{
-            .name = "throttling.iops-write-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-write-max burst period, in seconds",
-        },{
-            .name = "throttling.bps-total-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-total-max burst period, in seconds",
-        },{
-            .name = "throttling.bps-read-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-read-max burst period, in seconds",
-        },{
-            .name = "throttling.bps-write-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-write-max burst period, in seconds",
-        },{
-            .name = "throttling.iops-size",
-            .type = QEMU_OPT_NUMBER,
-            .help = "when limiting by iops max size of an I/O in bytes",
-        },{
+        },
+            THROTTLE_OPTS,
+          {
             .name = "throttling.group",
             .type = QEMU_OPT_STRING,
             .help = "name of the block throttling group",
diff --git a/fsdev/qemu-fsdev-opts.c b/fsdev/qemu-fsdev-opts.c
index 385423f0..bf57130 100644
--- a/fsdev/qemu-fsdev-opts.c
+++ b/fsdev/qemu-fsdev-opts.c
@@ -9,6 +9,7 @@ 
 #include "qemu/config-file.h"
 #include "qemu/option.h"
 #include "qemu/module.h"
+#include "qemu/throttle-options.h"
 
 static QemuOptsList qemu_fsdev_opts = {
     .name = "fsdev",
@@ -37,83 +38,10 @@  static QemuOptsList qemu_fsdev_opts = {
         }, {
             .name = "sock_fd",
             .type = QEMU_OPT_NUMBER,
-        }, {
-            .name = "throttling.iops-total",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit total I/O operations per second",
-        }, {
-            .name = "throttling.iops-read",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit read operations per second",
-        }, {
-            .name = "throttling.iops-write",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit write operations per second",
-        }, {
-            .name = "throttling.bps-total",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit total bytes per second",
-        }, {
-            .name = "throttling.bps-read",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit read bytes per second",
-        }, {
-            .name = "throttling.bps-write",
-            .type = QEMU_OPT_NUMBER,
-            .help = "limit write bytes per second",
-        }, {
-            .name = "throttling.iops-total-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations burst",
-        }, {
-            .name = "throttling.iops-read-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations read burst",
-        }, {
-            .name = "throttling.iops-write-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "I/O operations write burst",
-        }, {
-            .name = "throttling.bps-total-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes burst",
-        }, {
-            .name = "throttling.bps-read-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes read burst",
-        }, {
-            .name = "throttling.bps-write-max",
-            .type = QEMU_OPT_NUMBER,
-            .help = "total bytes write burst",
-        }, {
-            .name = "throttling.iops-total-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-total-max burst period, in seconds",
-        }, {
-            .name = "throttling.iops-read-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-read-max burst period, in seconds",
-        }, {
-            .name = "throttling.iops-write-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the iops-write-max burst period, in seconds",
-        }, {
-            .name = "throttling.bps-total-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-total-max burst period, in seconds",
-        }, {
-            .name = "throttling.bps-read-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-read-max burst period, in seconds",
-        }, {
-            .name = "throttling.bps-write-max-length",
-            .type = QEMU_OPT_NUMBER,
-            .help = "length of the bps-write-max burst period, in seconds",
-        }, {
-            .name = "throttling.iops-size",
-            .type = QEMU_OPT_NUMBER,
-            .help = "when limiting by iops max size of an I/O in bytes",
         },
+
+        THROTTLE_OPTS,
+
         { /*End of list */ }
     },
 };
diff --git a/include/qemu/throttle-options.h b/include/qemu/throttle-options.h
new file mode 100644
index 0000000..3133d1c
--- /dev/null
+++ b/include/qemu/throttle-options.h
@@ -0,0 +1,92 @@ 
+/*
+ * QEMU throttling command line options
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version.
+ *
+ * See the COPYING file in the top-level directory for details.
+ *
+ */
+#ifndef THROTTLE_OPTIONS_H
+#define THROTTLE_OPTIONS_H
+
+#define THROTTLE_OPTS \
+          { \
+            .name = "throttling.iops-total",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit total I/O operations per second",\
+        },{ \
+            .name = "throttling.iops-read",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit read operations per second",\
+        },{ \
+            .name = "throttling.iops-write",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit write operations per second",\
+        },{ \
+            .name = "throttling.bps-total",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit total bytes per second",\
+        },{ \
+            .name = "throttling.bps-read",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit read bytes per second",\
+        },{ \
+            .name = "throttling.bps-write",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "limit write bytes per second",\
+        },{ \
+            .name = "throttling.iops-total-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "I/O operations burst",\
+        },{ \
+            .name = "throttling.iops-read-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "I/O operations read burst",\
+        },{ \
+            .name = "throttling.iops-write-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "I/O operations write burst",\
+        },{ \
+            .name = "throttling.bps-total-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "total bytes burst",\
+        },{ \
+            .name = "throttling.bps-read-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "total bytes read burst",\
+        },{ \
+            .name = "throttling.bps-write-max",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "total bytes write burst",\
+        },{ \
+            .name = "throttling.iops-total-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the iops-total-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.iops-read-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the iops-read-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.iops-write-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the iops-write-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.bps-total-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the bps-total-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.bps-read-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the bps-read-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.bps-write-max-length",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "length of the bps-write-max burst period, in seconds",\
+        },{ \
+            .name = "throttling.iops-size",\
+            .type = QEMU_OPT_NUMBER,\
+            .help = "when limiting by iops max size of an I/O in bytes",\
+        }
+
+#endif