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(a)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(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list