[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 09/56] balloon: Make balloon size unsigned i
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [RFC PATCH 09/56] balloon: Make balloon size unsigned in QAPI/QMP |
Date: |
Wed, 9 Aug 2017 11:47:33 +0100 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
* Markus Armbruster (address@hidden) wrote:
> "Dr. David Alan Gilbert" <address@hidden> writes:
>
> > * Markus Armbruster (address@hidden) wrote:
> >> Sizes should use QAPI type 'size' (uint64_t). balloon parameter
> >> @value is 'int' (int64_t). qmp_balloon() implicitly converts to
> >> ram_addr_t, i.e. uint64_t. BALLOON_CHANGE parameter @actual and
> >> BalloonInfo member @actual are also 'int'.
> >> virtio_balloon_set_config() and virtio_balloon_stat() implicitly
> >> convert from ram_addr_t.
> >>
> >> Change all three to 'size', and adjust the code using them.
> >>
> >> balloon now accepts size values between 2^63 and 2^64-1. It accepts
> >> negative values as before, because that's how the QObject input
> >> visitor works for backward compatibility.
> >>
> >> Doing the same for HMP's balloon deserves its own commit (the next
> >> one).
> >>
> >> BALLOON_CHANGE and query-balloon now report sizes above 2^63-1
> >> correctly instead of their (negative) two's complement.
> >>
> >> So does HMP's "info balloon".
> >>
> >> Signed-off-by: Markus Armbruster <address@hidden>
> >> ---
> >> balloon.c | 2 +-
> >> hmp.c | 2 +-
> >> qapi-schema.json | 4 ++--
> >> qapi/event.json | 2 +-
> >> 4 files changed, 5 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/balloon.c b/balloon.c
> >> index 1d720ff..2ecca76 100644
> >> --- a/balloon.c
> >> +++ b/balloon.c
> >> @@ -102,7 +102,7 @@ BalloonInfo *qmp_query_balloon(Error **errp)
> >> return info;
> >> }
> >>
> >> -void qmp_balloon(int64_t target, Error **errp)
> >> +void qmp_balloon(uint64_t target, Error **errp)
> >> {
> >> if (!have_balloon(errp)) {
> >> return;
> >
> > Can't you remove the:
> > if (target <= 0) {
> >
> > check?
>
> Functional change when target == 0. Impact is not clear to me.
Hmm yes; I don't know whether 0 is legal.
Dave
> > (The type of the trace_balloon_event probably needs fixing
> > to be uint64_t rather than the unsigned long)
>
> You're right. I'll fix it.
>
> >> diff --git a/hmp.c b/hmp.c
> >> index 8257dd0..4556045 100644
> >> --- a/hmp.c
> >> +++ b/hmp.c
> >> @@ -781,7 +781,7 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict)
> >> return;
> >> }
> >>
> >> - monitor_printf(mon, "balloon: actual=%" PRId64 "\n", info->actual >>
> >> 20);
> >> + monitor_printf(mon, "balloon: actual=%" PRIu64 "\n", info->actual >>
> >> 20);
> >>
> >> qapi_free_BalloonInfo(info);
> >> }
> >> diff --git a/qapi-schema.json b/qapi-schema.json
> >> index 3ad2bc0..23eb60d 100644
> >> --- a/qapi-schema.json
> >> +++ b/qapi-schema.json
> >> @@ -2003,7 +2003,7 @@
> >> # Since: 0.14.0
> >> #
> >> ##
> >> -{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } }
> >> +{ 'struct': 'BalloonInfo', 'data': {'actual': 'size' } }
> >>
> >> ##
> >> # @query-balloon:
> >> @@ -2603,7 +2603,7 @@
> >> # <- { "return": {} }
> >> #
> >> ##
> >> -{ 'command': 'balloon', 'data': {'value': 'int'} }
> >> +{ 'command': 'balloon', 'data': {'value': 'size'} }
> >>
> >> ##
> >> # @Abort:
> >> diff --git a/qapi/event.json b/qapi/event.json
> >> index 6d22b02..9dfc70b 100644
> >> --- a/qapi/event.json
> >> +++ b/qapi/event.json
> >> @@ -488,7 +488,7 @@
> >> #
> >> ##
> >> { 'event': 'BALLOON_CHANGE',
> >> - 'data': { 'actual': 'int' } }
> >> + 'data': { 'actual': 'size' } }
> >
> > I was going to ask whether that was a problem for any external users,
> > but there again libvirt looks like it reads it into an unsigned long
> > long.
>
> Yes. See also my reply to Juan's review of PATCH 15.
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [RFC PATCH 03/56] monitor: Rewrite comment describing HMP .args_type, (continued)
[Qemu-devel] [RFC PATCH 05/56] char: Make ringbuf size unsigned in QAPI, Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 09/56] balloon: Make balloon size unsigned in QAPI/QMP, Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 11/56] monitor: Drop unused HMP .args_type 'M', Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 01/56] qobject: Touch up comments to say @param instead of 'param', Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 17/56] migration: Make MigrationStats sizes unsigned in QAPI/QMP, Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 19/56] block: Make snapshot VM state size unsigned in QAPI/QMP, Markus Armbruster, 2017/08/07
[Qemu-devel] [RFC PATCH 13/56] pci: Make PCI addresses and sizes unsigned in QAPI/QMP, Markus Armbruster, 2017/08/07