From: Peter Krempa Date: Thu, 30 Apr 2015 15:33:41 +0000 (+0200) Subject: conf: Always truncate balloon size to maximum memory size X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=fccc2c331311422d89a6f87b64f82672bc3f3f75;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git conf: Always truncate balloon size to maximum memory size Specifying a balloon size more than the memory size of a guest isn't something that should be rejected when parsing the XML. Truncate the size to the maximum memory size. --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 93d24ee06..334283d70 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3366,27 +3366,9 @@ virDomainDefPostParseInternal(virDomainDefPtr def, return -1; } - if (def->mem.cur_balloon > virDomainDefGetMemoryActual(def)) { - /* Older libvirt could get into this situation due to - * rounding; if the discrepancy is less than 4MiB, we silently - * round down, otherwise we flag the issue. */ - if (VIR_DIV_UP(def->mem.cur_balloon, 4096) > - VIR_DIV_UP(virDomainDefGetMemoryActual(def), 4096)) { - virReportError(VIR_ERR_XML_ERROR, - _("current memory '%lluk' exceeds " - "maximum '%lluk'"), - def->mem.cur_balloon, - virDomainDefGetMemoryActual(def)); - return -1; - } else { - VIR_DEBUG("Truncating current %lluk to maximum %lluk", - def->mem.cur_balloon, - virDomainDefGetMemoryActual(def)); - def->mem.cur_balloon = virDomainDefGetMemoryActual(def); - } - } else if (def->mem.cur_balloon == 0) { + if (def->mem.cur_balloon > virDomainDefGetMemoryActual(def) || + def->mem.cur_balloon == 0) def->mem.cur_balloon = virDomainDefGetMemoryActual(def); - } if ((def->mem.max_memory || def->mem.memory_slots) && !(def->mem.max_memory && def->mem.memory_slots)) {