[libvirt] [PATCH v2 3/3] memtune: change the way how we store unlimited value
Pavel Hrdina
phrdina at redhat.com
Fri Mar 6 11:03:44 UTC 2015
On Fri, Mar 06, 2015 at 11:28:15AM +0100, Peter Krempa wrote:
> On Thu, Mar 05, 2015 at 16:10:30 +0100, Pavel Hrdina wrote:
> > There was a mess in the way how we store unlimited value for memory
> > limits and how we handled values provided by user. Internally there
> > were two possible ways how to store unlimited value: as 0 value or as
> > VIR_DOMAIN_MEMORY_PARAM_UNLIMITED. Because we chose to store memory
> > limits as unsigned long long, we cannot use -1 to represent unlimited.
> > It's much easier for us to say that everything greater than
> > VIR_DOMAIN_MEMORY_PARAM_UNLIMITED means unlimited and leave 0 as valid
> > value despite that it makes no sense to set limit to 0.
> >
> > Remove unnecessary function virCompareLimitUlong. The update of test
> > is to prevent the 0 to be miss-used as unlimited in future.
> >
> > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1146539
> >
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> > docs/formatdomain.html.in | 4 +-
> > src/conf/domain_conf.c | 75 +++++++++++++++++-----
> > src/libvirt-domain.c | 3 +
> > src/libvirt_private.syms | 1 -
> > src/lxc/lxc_cgroup.c | 18 +++---
> > src/lxc/lxc_driver.c | 7 +-
> > src/lxc/lxc_fuse.c | 12 ++--
> > src/lxc/lxc_native.c | 6 +-
> > src/openvz/openvz_conf.c | 4 +-
> > src/openvz/openvz_driver.c | 4 +-
> > src/qemu/qemu_cgroup.c | 24 +++----
> > src/qemu/qemu_command.c | 8 ++-
> > src/qemu/qemu_driver.c | 10 +--
> > src/qemu/qemu_hotplug.c | 2 +-
> > src/qemu/qemu_migration.c | 5 +-
> > src/util/virutil.c | 23 -------
> > src/util/virutil.h | 2 -
> > tests/qemuxml2argvdata/qemuxml2argv-memtune.xml | 2 +-
> > .../qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml | 2 +-
> > 19 files changed, 118 insertions(+), 94 deletions(-)
> >
>
> ...
>
> > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> > index 20e40aa..782c13c 100644
> > --- a/src/qemu/qemu_migration.c
> > +++ b/src/qemu/qemu_migration.c
> > @@ -2986,7 +2986,8 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver,
> > QEMU_MIGRATION_COOKIE_NBD)))
> > goto cleanup;
> >
> > - if (STREQ_NULLABLE(protocol, "rdma") && !vm->def->mem.hard_limit) {
> > + if (STREQ_NULLABLE(protocol, "rdma") &&
> > + virMemoryLimitIsSet(vm->def->mem.hard_limit)) {
>
> You negated the condition above when adding the helper ...
>
> > virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> > _("cannot start RDMA migration with no memory hard "
> > "limit set"));
> > @@ -4102,7 +4103,7 @@ static int doNativeMigrate(virQEMUDriverPtr driver,
> > "with this QEMU binary"));
> > goto cleanup;
> > }
> > - if (!vm->def->mem.hard_limit) {
> > + if (virMemoryLimitIsSet(vm->def->mem.hard_limit)) {
>
> ... here too.
Nice catch.
>
> > virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> > _("cannot start RDMA migration with no memory hard "
> > "limit set"));
>
> ACK if you fix the two conditions above.
>
> Peter
Pushed with the fixed conditions.
Pavel
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
More information about the libvir-list
mailing list