From: Juan Quintela <quintela@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: Ashijeet Acharya <ashijeetacharya@gmail.com>,
lcapitulino@redhat.com, amit.shah@redhat.com, armbru@redhat.com,
dgilbert@redhat.com, pbonzini@redhat.com, berrange@redhat.com,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3] Move max-bandwidth and downtime-limit into migrate_set_parameter for both hmp and qmp
Date: Thu, 08 Sep 2016 16:41:11 +0200 [thread overview]
Message-ID: <87twdqzc6w.fsf@emacs.mitica> (raw)
In-Reply-To: <01e7066e-b807-95a6-6a5e-3435651a949e@redhat.com> (Eric Blake's message of "Wed, 7 Sep 2016 17:03:37 -0500")
Eric Blake <eblake@redhat.com> wrote:
>> + if (has_max_bandwidth) {
>> + s->parameters.max_bandwidth = max_bandwidth;
>> + if (s->to_dst_file) {
>> + qemu_file_set_rate_limit(s->to_dst_file,
>> + s->parameters.max_bandwidth / XFER_LIMIT_RATIO);
>> + }
>> + }
>> + if (has_downtime_limit) {
>> + downtime_limit *= 1000000; /* convert to nanoseconds */
>
> Are you sure this won't overflow?
Ashijeet, Eric mere means that if downtime_limit is bigger that
INT64_MAX/1000000, then you get an overflow with the multiplication.
Notice that if it overflows, the value is already quite big O:-)
2^63/1000/1000/1000/3600/24/365
292.47
Allowing "only" 292 years of downtime should be enough for the time
being (famous last words) O:-)
>
>> +void qmp_migrate_set_speed(int64_t valuebw, Error **errp)
>> +{
>> + bool has_compress_level = false;
>> + bool has_compress_threads = false;
>> + bool has_decompress_threads = false;
>> + bool has_cpu_throttle_initial = false;
>> + bool has_cpu_throttle_increment = false;
>> + bool has_tls_creds = false;
>> + bool has_tls_hostname = false;
>> + bool has_max_bandwidth = true;
>> + bool has_downtime_limit = false;
>> + const char *valuestr = NULL;
>> + long valueint = 0;
>> + Error *err = NULL;
>> +
>> + qmp_migrate_set_parameters(has_compress_level, valueint,
>> + has_compress_threads, valueint,
>
> Ugg. This looks gross. No need to name a bunch of variables set to
> false, when you can instead use QAPI's boxed conventions to pass a
> pointer to a struct, and rely on 0-initialization of the struct to leave
> all the parameters that you don't care about unmentioned.
We should change qmp_migrate_set_parameters to your new api. I fully
agree that this is gross, but it is the way it was written, nothing to
do with this patch, really.
Ashijeet, if you want to do this change in a different patch before this
change, I am all for it, but that is independent of your change.
With all the other suggestions of Eric, I agree, or I don't care.
(If time is an int in milliseconds or a float, I don't really care one
way or another. Whatever libvirt preffers).
Thanks, Juan.
next prev parent reply other threads:[~2016-09-08 14:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-06 13:39 [Qemu-devel] [PATCH v3] Move max-bandwidth and downtime-limit into migrate_set_parameter for both hmp and qmp Ashijeet Acharya
2016-09-07 8:41 ` Juan Quintela
2016-09-07 12:52 ` Ashijeet Acharya
2016-09-07 22:03 ` Eric Blake
2016-09-08 7:55 ` Ashijeet Acharya
2016-09-08 14:41 ` Juan Quintela [this message]
2016-09-08 15:30 ` Ashijeet Acharya
2016-09-08 15:39 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87twdqzc6w.fsf@emacs.mitica \
--to=quintela@redhat.com \
--cc=amit.shah@redhat.com \
--cc=armbru@redhat.com \
--cc=ashijeetacharya@gmail.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.