[PATCH v2 12/12] libxl: use API 4.13 to support domUs with more than 4TB

Olaf Hering olaf at aepfle.de
Thu Mar 25 16:26:12 UTC 2021


To support domUs with more than 4TB memory it is required to use
LIBXL_API_VERSION >= 0x040800, which uses uint64_t for certained guest
memory related quantities.

Unfortunately this change is not straight forward. While most of the
code in libxl.h handles the various LIBXL_API_VERSION variants
correctly, the check for valid a LIBXL_API_VERSION at the beginning of
the file was broken between Xen 4.7 and 4.13 - it did not cover for
API changes introduced in Xen 4.7 and 4.8. This was fixed with
xen-project/xen at c3999835df, which for libvirt means in practice either
the libxl API from Xen 4.5 or 4.13+ can be used.

This change uses pkgconfig to decide which API can be safely selected.
Xen provides a pkgconfig file since Xen 4.6, which is also the lowest
version expected by libvirt.

Signed-off-by: Olaf Hering <olaf at aepfle.de>
---
 meson.build | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index ea93a2a8ec..d246886cbf 100644
--- a/meson.build
+++ b/meson.build
@@ -1592,8 +1592,13 @@ if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
       xtl_link_dep = cc.find_library('xenctrl')
     endif
 
+    if libxl_dep.version().version_compare('>=4.13.0')
+      LIBXL_API_VERSION='0x041300'
+    else
+      LIBXL_API_VERSION='0x040500'
+    endif
     libxl_dep = declare_dependency(
-      compile_args: '-DLIBXL_API_VERSION=0x040500',
+      compile_args: '-DLIBXL_API_VERSION=' + LIBXL_API_VERSION,
       dependencies: [
         libxl_dep,
         xtl_link_dep,




More information about the libvir-list mailing list