[libvirt] [PATCH V3 1/2] libxl: drop support for Xen < 4.6

Jim Fehlig jfehlig at suse.com
Tue Sep 11 22:41:47 UTC 2018


On 9/11/18 4:38 PM, Jim Fehlig wrote:
> 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 <jfehlig at suse.com>
> ---
> 
> I made some other changes to this patch so have not added Michal's
> ACK from V2. Changes in V3:
> 
> - Change definition of LIBXL_API_VERSION to 0x040500, the API
>    version set when Xen 4.6 was released
> - Drop the 'true' parameter to LIBVIRT_CHECK_PKG macro so
>    configure fails if libxl is requested but the devel packages
>    are not installed
> - Remove a now unused variable and a redundant 'if test with_libxl'
>    check

Opps, forgot to mention that I also had to adjust the calls to 
libxl_set_vcpuaffinity to account for the change in LIBXL_API_VERSION.

Regards,
Jim

> 
>   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 @@
>   
>       <p>
>         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.
>       </p>
>   
>       <h2><a id="project">Project Links</a></h2>
> 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);
> 




More information about the libvir-list mailing list