Message ID | 20201002133923.1716645-1-philmd@redhat.com |
---|---|
Headers | show |
Series | qapi: Restrict machine (and migration) specific commands | expand |
* Philippe Mathieu-Daudé (philmd@redhat.com) wrote: > Restricting xen-set-global-dirty-log and xen-load-devices-state > commands migration.json pulls slightly less QAPI-generated code > into user-mode and tools. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Looks OK; for migration Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > qapi/migration.json | 41 +++++++++++++++++++++++++++++++++++++++++ > qapi/misc.json | 41 ----------------------------------------- > accel/stubs/xen-stub.c | 2 +- > hw/i386/xen/xen-hvm.c | 2 +- > migration/savevm.c | 1 - > 5 files changed, 43 insertions(+), 44 deletions(-) > > diff --git a/qapi/migration.json b/qapi/migration.json > index 7f5e6fd681..cb30f4c729 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -1551,6 +1551,47 @@ > { 'command': 'xen-save-devices-state', > 'data': {'filename': 'str', '*live':'bool' } } > > +## > +# @xen-set-global-dirty-log: > +# > +# Enable or disable the global dirty log mode. > +# > +# @enable: true to enable, false to disable. > +# > +# Returns: nothing > +# > +# Since: 1.3 > +# > +# Example: > +# > +# -> { "execute": "xen-set-global-dirty-log", > +# "arguments": { "enable": true } } > +# <- { "return": {} } > +# > +## > +{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } } > + > +## > +# @xen-load-devices-state: > +# > +# Load the state of all devices from file. The RAM and the block devices > +# of the VM are not loaded by this command. > +# > +# @filename: the file to load the state of the devices from as binary > +# data. See xen-save-devices-state.txt for a description of the binary > +# format. > +# > +# Since: 2.7 > +# > +# Example: > +# > +# -> { "execute": "xen-load-devices-state", > +# "arguments": { "filename": "/tmp/resume" } } > +# <- { "return": {} } > +# > +## > +{ 'command': 'xen-load-devices-state', 'data': {'filename': 'str'} } > + > ## > # @xen-set-replication: > # > diff --git a/qapi/misc.json b/qapi/misc.json > index 9813893269..afe936b45b 100644 > --- a/qapi/misc.json > +++ b/qapi/misc.json > @@ -287,26 +287,6 @@ > 'data': {'device': 'str', 'target': 'str', '*arg': 'str'}, > 'features': [ 'deprecated' ] } > > -## > -# @xen-set-global-dirty-log: > -# > -# Enable or disable the global dirty log mode. > -# > -# @enable: true to enable, false to disable. > -# > -# Returns: nothing > -# > -# Since: 1.3 > -# > -# Example: > -# > -# -> { "execute": "xen-set-global-dirty-log", > -# "arguments": { "enable": true } } > -# <- { "return": {} } > -# > -## > -{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } } > - > ## > # @getfd: > # > @@ -606,24 +586,3 @@ > ## > { 'enum': 'ReplayMode', > 'data': [ 'none', 'record', 'play' ] } > - > -## > -# @xen-load-devices-state: > -# > -# Load the state of all devices from file. The RAM and the block devices > -# of the VM are not loaded by this command. > -# > -# @filename: the file to load the state of the devices from as binary > -# data. See xen-save-devices-state.txt for a description of the binary > -# format. > -# > -# Since: 2.7 > -# > -# Example: > -# > -# -> { "execute": "xen-load-devices-state", > -# "arguments": { "filename": "/tmp/resume" } } > -# <- { "return": {} } > -# > -## > -{ 'command': 'xen-load-devices-state', 'data': {'filename': 'str'} } > diff --git a/accel/stubs/xen-stub.c b/accel/stubs/xen-stub.c > index 7ba0b697f4..7054965c48 100644 > --- a/accel/stubs/xen-stub.c > +++ b/accel/stubs/xen-stub.c > @@ -7,7 +7,7 @@ > > #include "qemu/osdep.h" > #include "sysemu/xen.h" > -#include "qapi/qapi-commands-misc.h" > +#include "qapi/qapi-commands-migration.h" > > bool xen_allowed; > > diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c > index f3ababf33b..9519c33c09 100644 > --- a/hw/i386/xen/xen-hvm.c > +++ b/hw/i386/xen/xen-hvm.c > @@ -24,7 +24,7 @@ > #include "hw/xen/xen-bus.h" > #include "hw/xen/xen-x86.h" > #include "qapi/error.h" > -#include "qapi/qapi-commands-misc.h" > +#include "qapi/qapi-commands-migration.h" > #include "qemu/error-report.h" > #include "qemu/main-loop.h" > #include "qemu/range.h" > diff --git a/migration/savevm.c b/migration/savevm.c > index 34e4b71052..1fdf3f76c2 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -42,7 +42,6 @@ > #include "postcopy-ram.h" > #include "qapi/error.h" > #include "qapi/qapi-commands-migration.h" > -#include "qapi/qapi-commands-misc.h" > #include "qapi/qmp/qerror.h" > #include "qemu/error-report.h" > #include "sysemu/cpus.h" > -- > 2.26.2 >
Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> Reduce the machine code pulled into qemu-storage-daemon.
I'm leaving review to Eduardo and Marcel for PATCH 1-4, and to David and
Juan for PATCH 5. David already ACKed.
Can do the pull request.
On 05/10/20 10:01, Markus Armbruster wrote: > Philippe Mathieu-Daudé <philmd@redhat.com> writes: > >> Reduce the machine code pulled into qemu-storage-daemon. > I'm leaving review to Eduardo and Marcel for PATCH 1-4, and to David and > Juan for PATCH 5. David already ACKed. > > Can do the pull request. > If it counts, :) for patch 1-4: Acked-by: Paolo Bonzini <pbonzini@redhat.com> Generally these patches to remove code from user-mode emulators fall into the "if it builds it's fine" bucket, since I assume we want the "misc" subschema to be as small as possible. Paolo
Paolo Bonzini <pbonzini@redhat.com> writes: > On 05/10/20 10:01, Markus Armbruster wrote: >> Philippe Mathieu-Daudé <philmd@redhat.com> writes: >> >>> Reduce the machine code pulled into qemu-storage-daemon. >> I'm leaving review to Eduardo and Marcel for PATCH 1-4, and to David and >> Juan for PATCH 5. David already ACKed. >> >> Can do the pull request. >> > > If it counts, :) for patch 1-4: > > Acked-by: Paolo Bonzini <pbonzini@redhat.com> > > Generally these patches to remove code from user-mode emulators > fall into the "if it builds it's fine" bucket, since I assume > we want the "misc" subschema to be as small as possible. Moving stuff out of qapi/misc.json is good as long as the new home makes sense. So, if it builds *and* the maintainers of the new home think it makes sense to have it there, it's fine. I don't think we should aim for eliminating every last bit of unused generated code from every program. We should aim for a sensible split into sub-modules. Unused generated code in a program can be a sign for a less than sensible split.