From 5bdcef13d13560512c7d6d8c9e8822e456889e0c Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Tue, 27 Mar 2018 11:50:14 -0600 Subject: [PATCH] libxl: drop support for Xen < 4.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently the libxl driver claims support for Xen >= 4.4, but Xen 4.4 and 4.5 are no longer supported upstream. Let's increase the minimum supported Xen version to 4.6 and change the defined LIBXL_API_VERSION to 0x040500, which is the API version defined when Xen 4.6 was released. Since Xen 4.6 contains a pkgconfig file, drop the now unused code that falls back to using LIBVIRT_CHECK_LIB in the absence of pkgconfig file. In addition, bumping the LIBXL_API_VERSION required adjusting the calls to libxl_set_vcpuaffinity to account for the extra parameter in the 0x040500 version of the API. Signed-off-by: Jim Fehlig Reviewed-by: Ján Tomko --- docs/drvxen.html.in | 2 +- m4/virt-driver-libxl.m4 | 27 ++------------------------- src/libxl/libxl_domain.c | 2 +- src/libxl/libxl_driver.c | 2 +- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in index 2e45e09527..ff67291ec6 100644 --- a/docs/drvxen.html.in +++ b/docs/drvxen.html.in @@ -8,7 +8,7 @@

The libvirt libxl driver provides the ability to manage virtual - machines on any Xen release from 4.4.0 onwards. + machines on any Xen release from 4.6.0 onwards.

Project Links

diff --git a/m4/virt-driver-libxl.m4 b/m4/virt-driver-libxl.m4 index 90338eb306..902da11472 100644 --- a/m4/virt-driver-libxl.m4 +++ b/m4/virt-driver-libxl.m4 @@ -26,37 +26,14 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [ LIBXL_CFLAGS="" LIBXL_FIRMWARE_DIR="" LIBXL_EXECBIN_DIR="" - LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040400" + LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040500" dnl search for libxl, aka libxenlight - dnl Xen > 4.5 introduced a pkgconfig file, check for it first - old_with_libxl="$with_libxl" - LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.4.0], [true]) + LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0]) if test "x$with_libxl" = "xyes" ; then LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight) LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight) - fi - - dnl pkgconfig file not found, fallback to lib probe - if test "x$with_libxl" = "xno" ; then - with_libxl="$old_with_libxl" - - dnl LIBXL_API_VERSION 4.4.0 introduced a new parameter to - dnl libxl_domain_create_restore for specifying restore parameters. - dnl The libxl driver will make use of this new parameter for specifying - dnl the Xen migration stream version. Specify LIBXL_API_VERSION to trigger - dnl an error if there is too old xenlight - libxlold_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $LIBXL_API_VERSION" - LIBVIRT_CHECK_LIB([LIBXL], [xenlight], [libxl_ctx_alloc], [libxl.h], [fail="1"]) - CFLAGS="$libxlold_CFLAGS" - - if test $fail = 1; then - AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.4 to compile libxenlight driver with -lxl]) - fi - fi - if test "$with_libxl" = "yes"; then old_LIBS="$LIBS" old_CFLAGS="$CFLAGS" diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index b800bc9f9d..0032b9dd11 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -886,7 +886,7 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) if (virBitmapToData(cpumask, &map.map, (int *)&map.size) < 0) goto cleanup; - if (libxl_set_vcpuaffinity(cfg->ctx, vm->def->id, i, &map) != 0) { + if (libxl_set_vcpuaffinity(cfg->ctx, vm->def->id, i, &map, NULL) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to pin vcpu '%zu' with libxenlight"), i); goto cleanup; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 539feb9acf..efd47a3912 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -2475,7 +2475,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned int vcpu, if (flags & VIR_DOMAIN_AFFECT_LIVE) { libxl_bitmap map = { .size = maplen, .map = cpumap }; - if (libxl_set_vcpuaffinity(cfg->ctx, vm->def->id, vcpu, &map) != 0) { + if (libxl_set_vcpuaffinity(cfg->ctx, vm->def->id, vcpu, &map, NULL) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to pin vcpu '%d' with libxenlight"), vcpu); -- GitLab