Re: [Qemu-devel] [RFC PATCH 32/56] hmp: Make block_set_io_throttle's arguments unsigned
"Dr. David Alan Gilbert"writes: > * Markus Armbruster (arm...@redhat.com) wrote: >> The previous commit made them unsigned in QMP. Switch HMP's args_type >> from 'l' to 'o'. Loses support for expressions (QEMU pocket >> calculator), gains support for unit suffixes. Negative values are no >> longer accepted and interpreted modulo 2^64. Instead, values between >> 2^63 and 2^64-1 are now accepted. > > But that also means all these values are assumed to be in MB by default? Yes. We could debate whether that's acceptable, as HMP is not a stable interface, but as a matter of fact, I'm no friend of defaulting the unit to anything but one. Looks like we have a customer for your proposed args_type '6'.
Re: [Qemu-devel] [RFC PATCH 32/56] hmp: Make block_set_io_throttle's arguments unsigned
* Markus Armbruster (arm...@redhat.com) wrote: > The previous commit made them unsigned in QMP. Switch HMP's args_type > from 'l' to 'o'. Loses support for expressions (QEMU pocket > calculator), gains support for unit suffixes. Negative values are no > longer accepted and interpreted modulo 2^64. Instead, values between > 2^63 and 2^64-1 are now accepted. But that also means all these values are assumed to be in MB by default? Dave > Signed-off-by: Markus Armbruster> --- > hmp-commands.hx | 2 +- > hmp.c | 6 +++--- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hmp-commands.hx b/hmp-commands.hx > index 46ce79c..bc3c066 100644 > --- a/hmp-commands.hx > +++ b/hmp-commands.hx > @@ -1668,7 +1668,7 @@ ETEXI > > { > .name = "block_set_io_throttle", > -.args_type = > "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l", > +.args_type = > "device:B,bps:o,bps_rd:o,bps_wr:o,iops:l,iops_rd:l,iops_wr:l", > .params = "device bps bps_rd bps_wr iops iops_rd iops_wr", > .help = "change I/O throttle limits for a block drive", > .cmd= hmp_block_set_io_throttle, > diff --git a/hmp.c b/hmp.c > index 3253674..599e816 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -1764,9 +1764,9 @@ void hmp_block_set_io_throttle(Monitor *mon, const > QDict *qdict) > BlockIOThrottle throttle = { > .has_device = true, > .device = (char *) qdict_get_str(qdict, "device"), > -.bps = qdict_get_int(qdict, "bps"), > -.bps_rd = qdict_get_int(qdict, "bps_rd"), > -.bps_wr = qdict_get_int(qdict, "bps_wr"), > +.bps = qdict_get_uint(qdict, "bps"), > +.bps_rd = qdict_get_uint(qdict, "bps_rd"), > +.bps_wr = qdict_get_uint(qdict, "bps_wr"), > .iops = qdict_get_int(qdict, "iops"), > .iops_rd = qdict_get_int(qdict, "iops_rd"), > .iops_wr = qdict_get_int(qdict, "iops_wr"), > -- > 2.7.5 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
[Qemu-devel] [RFC PATCH 32/56] hmp: Make block_set_io_throttle's arguments unsigned
The previous commit made them unsigned in QMP. Switch HMP's args_type from 'l' to 'o'. Loses support for expressions (QEMU pocket calculator), gains support for unit suffixes. Negative values are no longer accepted and interpreted modulo 2^64. Instead, values between 2^63 and 2^64-1 are now accepted. Signed-off-by: Markus Armbruster--- hmp-commands.hx | 2 +- hmp.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index 46ce79c..bc3c066 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1668,7 +1668,7 @@ ETEXI { .name = "block_set_io_throttle", -.args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l", +.args_type = "device:B,bps:o,bps_rd:o,bps_wr:o,iops:l,iops_rd:l,iops_wr:l", .params = "device bps bps_rd bps_wr iops iops_rd iops_wr", .help = "change I/O throttle limits for a block drive", .cmd= hmp_block_set_io_throttle, diff --git a/hmp.c b/hmp.c index 3253674..599e816 100644 --- a/hmp.c +++ b/hmp.c @@ -1764,9 +1764,9 @@ void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict) BlockIOThrottle throttle = { .has_device = true, .device = (char *) qdict_get_str(qdict, "device"), -.bps = qdict_get_int(qdict, "bps"), -.bps_rd = qdict_get_int(qdict, "bps_rd"), -.bps_wr = qdict_get_int(qdict, "bps_wr"), +.bps = qdict_get_uint(qdict, "bps"), +.bps_rd = qdict_get_uint(qdict, "bps_rd"), +.bps_wr = qdict_get_uint(qdict, "bps_wr"), .iops = qdict_get_int(qdict, "iops"), .iops_rd = qdict_get_int(qdict, "iops_rd"), .iops_wr = qdict_get_int(qdict, "iops_wr"), -- 2.7.5