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,
+ {
.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
--
1.8.3.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
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 >
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
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 >
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
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 >
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
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
>
© 2016 - 2026 Red Hat, Inc.