John Ferlan <jferlan@redhat.com> wrote on 07/10/2017
06:41:34 AM:
> From: John Ferlan <jferlan@redhat.com>
> To: Scott Garfinkle <seg@us.ibm.com>, libvir-list@redhat.com
> Date: 07/10/2017 06:41 AM
> Subject: Re: [libvirt] [PATCH] Use unsigned timeout
in
> cmdMigrateSetMaxDowntime
>
>
>
> On 06/27/2017 11:19 AM, Scott Garfinkle wrote:
> > While looking to implement a migrate-getmaxdowntime command (coming),
> > I noticed that the setmaxdowntime is incorrectly looking at its
> > parameter as a signed longlong. Not sure how that got past gcc,
but
> > here's a simple patch to make the command line parsing and the
parameter to
> > the worker functions all have the correct (unsigned) type.
> >
> > Signed-off-by: Scott Garfinkle <seg@us.ibm.com>
> > ---
> > tools/virsh-domain.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
>
> "For some commands" allowing a -1 provides a mechanism to
set an almost
> infinite time without having to type such a large value. Still
in this
> case since, the "downtime < 1" check immediately follows
it seems that
> wouldn't be the case here!
Yes, and maybe removing that check would have been a better alternative?
Still, thanks.
> Looking at QEMU code briefly - I do note the QEMU set downtime (and
> speed) commands that end up getting called are listed as "deprecated"
in
> favor of migrate-set-parameters (downtime-limit and max-bandwidth,
since
> QEMU 2.8). So while you're at thinking about a getmaxdowntime
type
> functionality maybe you'd want to give that a go as well (of course
> you'd have to add capabilities to detect when it was implemented using
> set-parameters)...
Thanks for pointing that out. So, I have patches to
implement the get-maxdowntime, which would seem to be a separate but related
effort. Being a newcomer to the code, I'll what are probably obvious questions:
is the concern that qemu will eventually just stop providing that interface?
Or, is there something inherently useful about changing the set-* commands?
Otherwise, I'm not sure what the value to the code is of changing the already-working
set commands.
regards, Scott Garfinkle