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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).