]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libxl: add API wrapper for libxl_domain_need_memory
authorOlaf Hering <olaf@aepfle.de>
Thu, 25 Mar 2021 16:26:07 +0000 (17:26 +0100)
committerJim Fehlig <jfehlig@suse.com>
Thu, 1 Apr 2021 20:01:06 +0000 (14:01 -0600)
Upcoming changes will use different LIBXL_API_VERSION variants.

Prepare libxl_domain_need_memory, which changed the storage size of
"need_memkb" in Xen 4.8. With Xen 4.12 the libxl_domain_config
parameter was changed

No functional change intended.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
src/libxl/libxl_api_wrapper.h
src/libxl/libxl_domain.c

index 13200cfec69db6727c95e00d23b29df144f1207c..193f9719194a7810926db741d679af734cefb49a 100644 (file)
@@ -114,3 +114,27 @@ libxlDomainUnpauseWrapper(libxl_ctx *ctx, uint32_t domid)
 
     return ret;
 }
+
+#define INVALID_DOMID ~0
+static inline int
+libxlDomainNeedMemoryWrapper(libxl_ctx *ctx,
+                             libxl_domain_config *d_config,
+                             uint64_t *need_memkb)
+{
+    int ret;
+
+#if LIBXL_API_VERSION < 0x040800
+    {
+        uint32_t val32 = 0;
+
+        ret = libxl_domain_need_memory(ctx, &d_config->b_info, &val32);
+        *need_memkb = val32;
+    }
+#elif LIBXL_API_VERSION < 0x041300
+    ret = libxl_domain_need_memory(ctx, &d_config->b_info, need_memkb);
+#else
+    ret = libxl_domain_need_memory(ctx, d_config, INVALID_DOMID, need_memkb);
+#endif
+
+    return ret;
+}
index a034fe221934451cd912d39016c1e5c822e6d7d5..d6554bc230704d289faec1c18b87ae006458958b 100644 (file)
@@ -1008,13 +1008,13 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
 static int
 libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config)
 {
-    uint32_t needed_mem;
+    uint64_t needed_mem;
     uint32_t free_mem;
     int32_t target_mem;
     int tries = 3;
     int wait_secs = 10;
 
-    if (libxl_domain_need_memory(ctx, &d_config->b_info, &needed_mem) < 0)
+    if (libxlDomainNeedMemoryWrapper(ctx, d_config, &needed_mem) < 0)
         goto error;
 
     do {