[libvirt] [PATCH V2] libxl: round memory values to next 1MiB increment

Jim Fehlig posted 1 patch 6 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20180222173148.12727-1-jfehlig@suse.com
Test syntax-check passed
src/libxl/libxl_conf.c | 4 ++++
1 file changed, 4 insertions(+)
[libvirt] [PATCH V2] libxl: round memory values to next 1MiB increment
Posted by Jim Fehlig 6 years, 2 months ago
libxl requires the memory sizes to be rounded to 1MiB increments.
Attempting to start a domain that violates this requirement will
fail with the marginally helpful error

2018-02-22 01:55:32.921+0000: xc: panic: xc_dom_boot.c:141: xc_dom_boot_mem_init: can't allocate low memory for domain: Out of memory
2018-02-22 01:55:32.921+0000: libxl: libxl_dom.c:671:libxl__build_dom: xc_dom_boot_mem_init failed: No such file or directory

Round the maximum and current memory values to the next 1MiB
increment when generating the libxl_domain_config object.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
---

V2:
Set rounded memory values in virDomainDef object so they are correctly
reflected in the live config.

 src/libxl/libxl_conf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 57cb4c0ad..d074edc9c 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -367,6 +367,10 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
     }
 
     b_info->sched_params.weight = 1000;
+    /* Xen requires the memory sizes to be rounded to 1MiB increments */
+    virDomainDefSetMemoryTotal(def,
+                               VIR_ROUND_UP(virDomainDefGetMemoryInitial(def), 1024));
+    def->mem.cur_balloon = VIR_ROUND_UP(def->mem.cur_balloon, 1024);
     b_info->max_memkb = virDomainDefGetMemoryInitial(def);
     b_info->target_memkb = def->mem.cur_balloon;
     if (hvm) {
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH V2] libxl: round memory values to next 1MiB increment
Posted by Peter Krempa 6 years, 2 months ago
On Thu, Feb 22, 2018 at 10:31:48 -0700, Jim Fehlig wrote:
> libxl requires the memory sizes to be rounded to 1MiB increments.
> Attempting to start a domain that violates this requirement will
> fail with the marginally helpful error
> 
> 2018-02-22 01:55:32.921+0000: xc: panic: xc_dom_boot.c:141: xc_dom_boot_mem_init: can't allocate low memory for domain: Out of memory
> 2018-02-22 01:55:32.921+0000: libxl: libxl_dom.c:671:libxl__build_dom: xc_dom_boot_mem_init failed: No such file or directory
> 
> Round the maximum and current memory values to the next 1MiB
> increment when generating the libxl_domain_config object.
> 
> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
> ---
> 
> V2:
> Set rounded memory values in virDomainDef object so they are correctly
> reflected in the live config.

ACK
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list