[libvirt] [PATCH 2/3] Wire up virDomainMigrateSetSpeed for the remote RPC driver

Daniel P. Berrange berrange at redhat.com
Tue Mar 22 11:04:10 UTC 2011


On Mon, Mar 21, 2011 at 12:04:33PM -0600, Eric Blake wrote:
> On 03/21/2011 10:13 AM, Daniel P. Berrange wrote:
> > * src/remote/remote_protocol.x: Define wire protocol
> > * daemon/remote.c, src/remote/remote_driver.c: Add new
> >   functions for virDomainMigrateSetSpeed API
> > * src/remote/remote_protocol.c, src/remote/remote_protocol.h,
> >   daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
> >   daemon/remote_dispatch_table.h: Re-generate files
> > ---
> >  daemon/remote.c                     |   28 ++++++++++++++++++++++++++++
> >  daemon/remote_dispatch_args.h       |    1 +
> >  daemon/remote_dispatch_prototypes.h |    8 ++++++++
> >  daemon/remote_dispatch_table.h      |    5 +++++
> >  src/remote/remote_driver.c          |   31 ++++++++++++++++++++++++++++++-
> >  src/remote/remote_protocol.c        |   13 +++++++++++++
> >  src/remote/remote_protocol.h        |   10 ++++++++++
> >  src/remote/remote_protocol.x        |    9 ++++++++-
> >  8 files changed, 103 insertions(+), 2 deletions(-)
> 
> No change to src/remote_protocol-structs (make check should have caught
> that, if you have 'dwarves' installed)?  Also, that file has a pending
> unreviewed patch from me that might conflict, depending on who pushes first:
> https://www.redhat.com/archives/libvir-list/2011-March/msg00519.html

Ipps, i forgot that.

> 
> > +++ b/src/remote/remote_protocol.x
> > @@ -1760,6 +1760,12 @@ struct remote_domain_migrate_set_max_downtime_args {
> >      unsigned flags;
> >  };
> >  
> > +struct remote_domain_migrate_set_max_speed_args {
> > +    remote_nonnull_domain dom;
> > +    unsigned hyper bandwidth;
> > +    unsigned flags;
> > +};
> 
> Do we really need 'unsigned long' in patch 1 and 'hyper' here?  Given
> that the argument is provided in units of Mbps, wouldn't 'int' be
> sufficient?  However, this accurately reflects patch 1, so a change here
> would also require a change in patch 1.

I used 'unsigned long' and 'hyper' for consistency with the way this
same value is serialized in the main migrate method:

  virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
                                 unsigned long flags, const char *dname,
                                 const char *uri, unsigned long bandwidth);

'bandwidth' is the parameter mirror here

  struct remote_domain_migrate_perform_args {
    remote_nonnull_domain dom;
    opaque cookie<REMOTE_MIGRATE_COOKIE_MAX>;
    remote_nonnull_string uri;
    unsigned hyper flags;
    remote_string dname;
    unsigned hyper resource;
  };

while 'resource' is the one we mirror here

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list