diff --git a/libvirt.changes b/libvirt.changes index cb11d7d..64f6301 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Mar 19 22:59:45 UTC 2020 - James Fehlig + +- libxl: Bump minimum supported Xen version to 4.9, allowing use + of newer libxl APIs for retrieving memory statistics + suse-bump-xen-version.patch + bsc#1157490, bsc#1167007 + ------------------------------------------------------------------- Tue Mar 17 19:50:01 UTC 2020 - James Fehlig diff --git a/libvirt.spec b/libvirt.spec index 34e9cba..bd66a2c 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -367,6 +367,7 @@ Patch211: libvirt-suse-netcontrol.patch Patch212: lxc-wait-after-eth-del.patch Patch213: suse-libxl-disable-autoballoon.patch Patch214: suse-xen-ovmf-loaders.patch +Patch215: suse-bump-xen-version.patch # SLES-Only patches %if ! 0%{?is_opensuse} Patch400: virt-create-rootfs.patch @@ -899,6 +900,7 @@ libvirt plugin for NSS for translating domain names into IP addresses. %patch212 -p1 %patch213 -p1 %patch214 -p1 +%patch215 -p1 %if ! 0%{?is_opensuse} %patch400 -p1 %endif diff --git a/suse-bump-xen-version.patch b/suse-bump-xen-version.patch new file mode 100644 index 0000000..4677842 --- /dev/null +++ b/suse-bump-xen-version.patch @@ -0,0 +1,79 @@ +Bump minimum supported Xen version to 4.9 + +There were no changes to the libxl API between 4.8 and 4.9, so +the LIBXL_API_VERSION is set to 0x040800. + +Note: xen.git commit c3999835df is needed in any Xen package where +this patch is expected to work. It is included in Xen 4.13, but would +need backporting to anything older. The dependency on xen.git commit +c3999835df makes it hard to upstream this patch. + +See bsc#1157490 and bsc#1167007 for more details +Index: libvirt-6.1.0/m4/virt-driver-libxl.m4 +=================================================================== +--- libvirt-6.1.0.orig/m4/virt-driver-libxl.m4 ++++ libvirt-6.1.0/m4/virt-driver-libxl.m4 +@@ -26,11 +26,11 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [ + LIBXL_CFLAGS="" + LIBXL_FIRMWARE_DIR="" + LIBXL_EXECBIN_DIR="" +- LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040500" ++ LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040800" + + dnl search for libxl, aka libxenlight + old_with_libxl="$with_libxl" +- LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0]) ++ LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.9.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) +Index: libvirt-6.1.0/src/libxl/libxl_conf.c +=================================================================== +--- libvirt-6.1.0.orig/src/libxl/libxl_conf.c ++++ libvirt-6.1.0/src/libxl/libxl_conf.c +@@ -1785,7 +1785,7 @@ int + libxlDriverConfigInit(libxlDriverConfigPtr cfg) + { + char ebuf[1024]; +- unsigned int free_mem; ++ uint64_t free_mem; + + if (virFileMakePath(cfg->logDir) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, +Index: libvirt-6.1.0/src/libxl/libxl_domain.c +=================================================================== +--- libvirt-6.1.0.orig/src/libxl/libxl_domain.c ++++ libvirt-6.1.0/src/libxl/libxl_domain.c +@@ -1006,8 +1006,8 @@ libxlDomainSetVcpuAffinities(libxlDriver + static int + libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config) + { +- uint32_t needed_mem; +- uint32_t free_mem; ++ uint64_t needed_mem; ++ uint64_t free_mem; + int32_t target_mem; + int tries = 3; + int wait_secs = 10; +@@ -1401,7 +1401,7 @@ libxlDomainStart(libxlDriverPrivatePtr d + params.stream_version = restore_ver; + #endif + ret = libxl_domain_create_restore(cfg->ctx, &d_config, &domid, +- restore_fd, ¶ms, NULL, ++ restore_fd, -1, ¶ms, NULL, + &aop_console_how); + libxl_domain_restore_params_dispose(¶ms); + } +Index: libvirt-6.1.0/tests/libxlmock.c +=================================================================== +--- libvirt-6.1.0.orig/tests/libxlmock.c ++++ libvirt-6.1.0/tests/libxlmock.c +@@ -67,7 +67,7 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version + VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory, + int, 0, + libxl_ctx *, ctx, +- uint32_t *, memkb); ++ uint64_t *, memkb); + + VIR_MOCK_STUB_RET_ARGS(xc_interface_close, + int, 0,