Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2020-08-06 17:31:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen" Thu Aug 6 17:31:00 2020 rev:288 rq:824549 version:4.14.0_02 Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2020-07-14 07:44:35.838938763 +0200 +++ /work/SRC/openSUSE:Factory/.xen.new.3399/xen.changes 2020-08-06 17:31:49.581090252 +0200 @@ -1,0 +2,70 @@ +Wed Aug 5 19:30:23 UTC 2020 - Callum Farmer <callumjfarme...@gmail.com> + +- Correct license name + * GPL-3.0+ is now GPL-3.0-or-later + +------------------------------------------------------------------- +Mon Aug 3 06:26:08 MDT 2020 - carn...@suse.com + +- Upstream bug fixes (bsc#1027519) + 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch + 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch + +------------------------------------------------------------------- +Fri Jul 24 16:27:29 MDT 2020 - carn...@suse.com + +- Update to Xen 4.14.0 FCS release + xen-4.14.0-testing-src.tar.bz2 + * Linux stubdomains (contributed by QUBES OS) + * Control-flow Enforcement Technology (CET) Shadow Stack support (contributed by Citrix) + * Lightweight VM fork for fuzzing / introspection. (contributed by Intel) + * Livepatch: buildid and hotpatch stack requirements + * CONFIG_PV32 + * Hypervisor FS support + * Running Xen as a Hyper-V Guest + * Domain ID randomization, persistence across save / restore + * Golang binding autogeneration + * KDD support for Windows 7, 8.x and 10 +- Dropped patches contained in new tarball + 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch + 5eb51caa-sched-vcpu-pause-flags-atomic.patch + 5ec2a760-x86-determine-MXCSR-mask-always.patch + 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch + 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch + 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch + 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch + 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch + 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch + 5ed69804-x86-ucode-fix-start-end-update.patch + 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch + 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch + 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch + 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch + 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch + xsa317.patch + xsa319.patch + xsa321-1.patch + xsa321-2.patch + xsa321-3.patch + xsa321-4.patch + xsa321-5.patch + xsa321-6.patch + xsa321-7.patch + xsa328-1.patch + xsa328-2.patch + +------------------------------------------------------------------- +Thu Jul 23 11:12:58 MDT 2020 - carn...@suse.com + +- bsc#1172356 - Not able to hot-plug NIC via virt-manager, asks to + attach on next reboot while it should be live attached + ignore-ip-command-script-errors.patch + +------------------------------------------------------------------- +Fri Jul 17 14:14:14 UTC 2020 - oher...@suse.de + +- Enhance libxc.migrate_tracking.patch + After transfer of domU memory, the target host has to assemble + the backend devices. Track the time prior xc_domain_unpause. + +------------------------------------------------------------------- Old: ---- 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch 5eb51caa-sched-vcpu-pause-flags-atomic.patch 5ec2a760-x86-determine-MXCSR-mask-always.patch 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch 5ed69804-x86-ucode-fix-start-end-update.patch 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch xen-4.13.1-testing-src.tar.bz2 xsa317.patch xsa319.patch xsa321-1.patch xsa321-2.patch xsa321-3.patch xsa321-4.patch xsa321-5.patch xsa321-6.patch xsa321-7.patch xsa328-1.patch xsa328-2.patch New: ---- 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch ignore-ip-command-script-errors.patch xen-4.14.0-testing-src.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:53.541091180 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:53.545091181 +0200 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# Please submit bugfixes or comments via http://bugs.opensuse.org/ # # needssslcertforbuild @@ -24,8 +24,8 @@ Name: xen ExclusiveArch: %ix86 x86_64 aarch64 -%define changeset 40162 -%define xen_build_dir xen-4.13.1-testing +%define changeset 41121 +%define xen_build_dir xen-4.14.0-testing # %define with_gdbsx 0 %define with_dom0_support 0 @@ -123,12 +123,12 @@ BuildRequires: pesign-obs-integration %endif -Version: 4.13.1_04 +Version: 4.14.0_02 Release: 0 Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) License: GPL-2.0-only Group: System/Kernel -Source0: xen-4.13.1-testing-src.tar.bz2 +Source0: xen-4.14.0-testing-src.tar.bz2 Source1: stubdom.tar.bz2 Source5: ipxe.tar.bz2 Source6: mini-os.tar.bz2 @@ -162,32 +162,8 @@ # For xen-libs Source99: baselibs.conf # Upstream patches -Patch1: 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch -Patch2: 5eb51caa-sched-vcpu-pause-flags-atomic.patch -Patch3: 5ec2a760-x86-determine-MXCSR-mask-always.patch -Patch4: 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch -Patch5: 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch -Patch6: 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch -Patch7: 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch -Patch8: 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch -Patch9: 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch -Patch10: 5ed69804-x86-ucode-fix-start-end-update.patch -Patch11: 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch -Patch12: 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch -Patch13: 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch -Patch14: 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch -Patch15: 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch -Patch317: xsa317.patch -Patch319: xsa319.patch -Patch32101: xsa321-1.patch -Patch32102: xsa321-2.patch -Patch32103: xsa321-3.patch -Patch32104: xsa321-4.patch -Patch32105: xsa321-5.patch -Patch32106: xsa321-6.patch -Patch32107: xsa321-7.patch -Patch32801: xsa328-1.patch -Patch32802: xsa328-2.patch +Patch1: 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch +Patch2: 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch # Our platform specific patches Patch400: xen-destdir.patch Patch401: vif-bridge-no-iptables.patch @@ -199,6 +175,7 @@ Patch407: replace-obsolete-network-configuration-commands-in-s.patch Patch408: disable-building-pv-shim.patch Patch409: xenstore-launch.patch +Patch410: ignore-ip-command-script-errors.patch # Needs to go upstream Patch420: suspend_evtchn_lock.patch Patch422: stubdom-have-iovec.patch @@ -417,30 +394,6 @@ # Upstream patches %patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch317 -p1 -%patch319 -p1 -%patch32801 -p1 -%patch32802 -p1 -%patch32101 -p1 -%patch32102 -p1 -%patch32103 -p1 -%patch32104 -p1 -%patch32105 -p1 -%patch32106 -p1 -%patch32107 -p1 # Our platform specific patches %patch400 -p1 %patch401 -p1 @@ -452,6 +405,7 @@ %patch407 -p1 %patch408 -p1 %patch409 -p1 +%patch410 -p1 # Needs to go upstream %patch420 -p1 %patch422 -p1 @@ -1005,6 +959,7 @@ rm -f %{buildroot}/%{_sysconfdir}/bash_completion.d/xl.sh rm -f %{buildroot}/%{_sysconfdir}/init.d/xen* rm -f %{buildroot}/%{_bindir}/*trace* +rm -f %{buildroot}/%{_bindir}/vchan-socket-proxy rm -f %{buildroot}/%{_bindir}/xenalyze* rm -f %{buildroot}/%{_bindir}/xenco* rm -f %{buildroot}/%{_bindir}/xen-cpuid @@ -1038,6 +993,7 @@ /usr/bin/xencons /usr/bin/xenstore* /usr/bin/pygrub +/usr/bin/vchan-socket-proxy /usr/bin/xencov_split /usr/bin/xentrace_format %ifarch x86_64 @@ -1076,6 +1032,7 @@ /usr/sbin/xen-hvmctx /usr/sbin/xen-lowmemd /usr/sbin/xen-kdd +/usr/sbin/xenhypfs %endif /usr/sbin/xen-list /usr/sbin/xen-destroy @@ -1138,7 +1095,7 @@ %dir %{_libdir}/python%{pyver}/site-packages/xen/lowlevel %dir %{_libdir}/python%{pyver}/site-packages/xen/migration %{_libdir}/python%{pyver}/site-packages/grub/* -%{_libdir}/python%{pyver}/site-packages/xen/__init__* +%{_libdir}/python%{pyver}/site-packages/xen/util.py %{_libdir}/python%{pyver}/site-packages/xen/lowlevel/* %{_libdir}/python%{pyver}/site-packages/xen/migration/* %{_libdir}/python%{pyver}/site-packages/*.so @@ -1251,6 +1208,7 @@ %{_libdir}/pkgconfig/xenforeignmemory.pc %{_libdir}/pkgconfig/xengnttab.pc %{_libdir}/pkgconfig/xenguest.pc +%{_libdir}/pkgconfig/xenhypfs.pc %{_libdir}/pkgconfig/xenstat.pc %{_libdir}/pkgconfig/xenstore.pc %{_libdir}/pkgconfig/xentoolcore.pc ++++++ 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch ++++++ # Commit 55f8c389d4348cc517946fdcb10794112458e81e # Date 2020-07-24 10:17:26 +0200 # Author Jan Beulich <jbeul...@suse.com> # Committer Jan Beulich <jbeul...@suse.com> x86/S3: put data segment registers into known state upon resume wakeup_32 sets %ds and %es to BOOT_DS, while leaving %fs at what wakeup_start did set it to, and %gs at whatever BIOS did load into it. All of this may end up confusing the first load_segments() to run on the BSP after resume, in particular allowing a non-nul selector value to be left in %fs. Alongside %ss, also put all other data segment registers into the same state that the boot and CPU bringup paths put them in. Reported-by: M. Vefa Bicakci <m....@runbox.com> Signed-off-by: Jan Beulich <jbeul...@suse.com> Reviewed-by: Roger Pau Monné <roger....@citrix.com> Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> --- a/xen/arch/x86/acpi/wakeup_prot.S +++ b/xen/arch/x86/acpi/wakeup_prot.S @@ -49,6 +49,10 @@ ENTRY(s3_resume) mov %rax, %cr0 mov $__HYPERVISOR_DS64, %eax + mov %eax, %ds + mov %eax, %es + mov %eax, %fs + mov %eax, %gs mov %eax, %ss mov saved_rsp(%rip), %rsp ++++++ 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch ++++++ # Commit 64219fa179c3e48adad12bfce3f6b3f1596cccbf # Date 2020-07-29 19:03:41 +0100 # Author Fam Zheng <famzh...@amazon.com> # Committer Andrew Cooper <andrew.coop...@citrix.com> x86/cpuid: Fix APIC bit clearing The bug is obvious here, other places in this function used "cpufeat_mask" correctly. Fixed: b648feff8ea2 ("xen/x86: Improvements to in-hypervisor cpuid sanity checks") Signed-off-by: Fam Zheng <famzh...@amazon.com> Reviewed-by: Roger Pau Monné <roger....@citrix.com> Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> --- a/xen/arch/x86/cpuid.c +++ b/xen/arch/x86/cpuid.c @@ -1057,7 +1057,7 @@ void guest_cpuid(const struct vcpu *v, u { /* Fast-forward MSR_APIC_BASE.EN. */ if ( vlapic_hw_disabled(vcpu_vlapic(v)) ) - res->d &= ~cpufeat_bit(X86_FEATURE_APIC); + res->d &= ~cpufeat_mask(X86_FEATURE_APIC); /* * PSE36 is not supported in shadow mode. This bit should be ++++++ bin-python3-conversion.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:53.641091203 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:53.641091203 +0200 @@ -1,7 +1,7 @@ -Index: xen-4.13.0-testing/tools/misc/xencons +Index: xen-4.14.0-testing/tools/misc/xencons =================================================================== ---- xen-4.13.0-testing.orig/tools/misc/xencons -+++ xen-4.13.0-testing/tools/misc/xencons +--- xen-4.14.0-testing.orig/tools/misc/xencons ++++ xen-4.14.0-testing/tools/misc/xencons @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 @@ -67,12 +67,12 @@ + print(sys.argv[0] + " <host> <port>") sys.exit(1) connect(str(sys.argv[1]),int(sys.argv[2])) -Index: xen-4.13.0-testing/tools/misc/xencov_split +Index: xen-4.14.0-testing/tools/misc/xencov_split =================================================================== ---- xen-4.13.0-testing.orig/tools/misc/xencov_split -+++ xen-4.13.0-testing/tools/misc/xencov_split +--- xen-4.14.0-testing.orig/tools/misc/xencov_split ++++ xen-4.14.0-testing/tools/misc/xencov_split @@ -1,4 +1,4 @@ --#!/usr/bin/python +-#!/usr/bin/env python +#!/usr/bin/python3 import sys, os, os.path as path, struct, errno @@ -97,10 +97,10 @@ sys.exit(1) except KeyboardInterrupt: sys.exit(1) -Index: xen-4.13.0-testing/tools/misc/xenpvnetboot +Index: xen-4.14.0-testing/tools/misc/xenpvnetboot =================================================================== ---- xen-4.13.0-testing.orig/tools/misc/xenpvnetboot -+++ xen-4.13.0-testing/tools/misc/xenpvnetboot +--- xen-4.14.0-testing.orig/tools/misc/xenpvnetboot ++++ xen-4.14.0-testing/tools/misc/xenpvnetboot @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 @@ -224,123 +224,40 @@ sys.exit(1) sys.stdout.flush() -Index: xen-4.13.0-testing/tools/python/scripts/convert-legacy-stream +Index: xen-4.14.0-testing/tools/python/scripts/convert-legacy-stream =================================================================== ---- xen-4.13.0-testing.orig/tools/python/scripts/convert-legacy-stream -+++ xen-4.13.0-testing/tools/python/scripts/convert-legacy-stream +--- xen-4.14.0-testing.orig/tools/python/scripts/convert-legacy-stream ++++ xen-4.14.0-testing/tools/python/scripts/convert-legacy-stream @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -@@ -39,16 +39,16 @@ def info(msg): - for line in msg.split("\n"): - syslog.syslog(syslog.LOG_INFO, line) - else: -- print msg -+ print(msg) - - def err(msg): - """Error message, routed to appropriate destination""" - if log_to_syslog: - for line in msg.split("\n"): - syslog.syslog(syslog.LOG_ERR, line) -- print >> sys.stderr, msg -+ print(msg, file=sys.stderr) - --class StreamError(StandardError): -+class StreamError(Exception): - """Error with the incoming migration stream""" - pass - -@@ -637,7 +637,7 @@ def open_file_or_fd(val, mode): - else: - return open(val, mode, 0) - -- except StandardError, e: -+ except Exception as e: - if fd != -1: - err("Unable to open fd %d: %s: %s" % - (fd, e.__class__.__name__, e)) -@@ -723,7 +723,7 @@ def main(): - if __name__ == "__main__": - try: - sys.exit(main()) -- except SystemExit, e: -+ except SystemExit as e: - sys.exit(e.code) - except KeyboardInterrupt: - sys.exit(1) -Index: xen-4.13.0-testing/tools/python/scripts/verify-stream-v2 +Index: xen-4.14.0-testing/tools/python/scripts/verify-stream-v2 =================================================================== ---- xen-4.13.0-testing.orig/tools/python/scripts/verify-stream-v2 -+++ xen-4.13.0-testing/tools/python/scripts/verify-stream-v2 +--- xen-4.14.0-testing.orig/tools/python/scripts/verify-stream-v2 ++++ xen-4.14.0-testing/tools/python/scripts/verify-stream-v2 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ Verify a v2 format migration stream """ -@@ -25,7 +25,7 @@ def info(msg): - for line in msg.split("\n"): - syslog.syslog(syslog.LOG_INFO, line) - else: -- print msg -+ print(msg) - - def err(msg): - """Error message, routed to appropriate destination""" -@@ -33,7 +33,7 @@ def err(msg): - if log_to_syslog: - for line in msg.split("\n"): - syslog.syslog(syslog.LOG_ERR, line) -- print >> sys.stderr, msg -+ print(msg, file=sys.stderr) - - def stream_read(_ = None): - """Read from input""" -@@ -86,7 +86,7 @@ def read_stream(fmt): - err(traceback.format_exc()) - return 1 - -- except StandardError: -+ except Exception: - err("Script Error:") - err(traceback.format_exc()) - err("Please fix me") -@@ -114,7 +114,7 @@ def open_file_or_fd(val, mode, buffering - else: - return open(val, mode, buffering) - -- except StandardError, e: -+ except Exception as e: - if fd != -1: - err("Unable to open fd %d: %s: %s" % - (fd, e.__class__.__name__, e)) -@@ -168,7 +168,7 @@ def main(): - if __name__ == "__main__": - try: - sys.exit(main()) -- except SystemExit, e: -+ except SystemExit as e: - sys.exit(e.code) - except KeyboardInterrupt: - sys.exit(2) -Index: xen-4.13.0-testing/tools/xenmon/xenmon.py +Index: xen-4.14.0-testing/tools/xenmon/xenmon.py =================================================================== ---- xen-4.13.0-testing.orig/tools/xenmon/xenmon.py -+++ xen-4.13.0-testing/tools/xenmon/xenmon.py +--- xen-4.14.0-testing.orig/tools/xenmon/xenmon.py ++++ xen-4.14.0-testing/tools/xenmon/xenmon.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 ##################################################################### # xenmon is a front-end for xenbaked. -Index: xen-4.13.0-testing/tools/xentrace/xentrace_format +Index: xen-4.14.0-testing/tools/xentrace/xentrace_format =================================================================== ---- xen-4.13.0-testing.orig/tools/xentrace/xentrace_format -+++ xen-4.13.0-testing/tools/xentrace/xentrace_format +--- xen-4.14.0-testing.orig/tools/xentrace/xentrace_format ++++ xen-4.14.0-testing/tools/xentrace/xentrace_format @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 ++++++ build-python3-conversion.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:53.733091225 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:53.737091226 +0200 @@ -1,8 +1,8 @@ -Index: xen-4.13.0-testing/Config.mk +Index: xen-4.14.0-testing/Config.mk =================================================================== ---- xen-4.13.0-testing.orig/Config.mk -+++ xen-4.13.0-testing/Config.mk -@@ -82,7 +82,7 @@ EXTRA_INCLUDES += $(EXTRA_PREFIX)/includ +--- xen-4.14.0-testing.orig/Config.mk ++++ xen-4.14.0-testing/Config.mk +@@ -73,7 +73,7 @@ EXTRA_INCLUDES += $(EXTRA_PREFIX)/includ EXTRA_LIB += $(EXTRA_PREFIX)/lib endif @@ -11,20 +11,11 @@ PYTHON_PREFIX_ARG ?= --prefix="$(prefix)" # The above requires that prefix contains *no spaces*. This variable is here # to permit the user to set PYTHON_PREFIX_ARG to '' to workaround this bug: -Index: xen-4.13.0-testing/tools/configure +Index: xen-4.14.0-testing/tools/configure =================================================================== ---- xen-4.13.0-testing.orig/tools/configure -+++ xen-4.13.0-testing/tools/configure -@@ -6926,7 +6926,7 @@ then - fi;; - esac - if test -z "$PYTHON"; then : -- for ac_prog in python python3 python2 -+ for ac_prog in python3 python python2 - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 -@@ -7065,15 +7065,15 @@ if test x"${PYTHONPATH}" = x"no" +--- xen-4.14.0-testing.orig/tools/configure ++++ xen-4.14.0-testing/tools/configure +@@ -7278,15 +7278,15 @@ if test x"${PYTHONPATH}" = x"no" then as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5 fi @@ -44,339 +35,11 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -Index: xen-4.13.0-testing/tools/python/test.py +Index: xen-4.14.0-testing/tools/configure.ac =================================================================== ---- xen-4.13.0-testing.orig/tools/python/test.py -+++ xen-4.13.0-testing/tools/python/test.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python2.3 -+#!/usr/bin/python3 - ############################################################################## - # - # Copyright (c) 2001, 2002 Zope Corporation and Contributors. -@@ -289,9 +289,9 @@ class ImmediateTestResult(unittest._Text - def stopTest(self, test): - self._testtimes[test] = time.time() - self._testtimes[test] - if gc.garbage: -- print "The following test left garbage:" -- print test -- print gc.garbage -+ print("The following test left garbage:") -+ print(test) -+ print(gc.garbage) - # XXX Perhaps eat the garbage here, so that the garbage isn't - # printed for every subsequent test. - -@@ -301,23 +301,23 @@ class ImmediateTestResult(unittest._Text - and - t not in self._threads)] - if new_threads: -- print "The following test left new threads behind:" -- print test -- print "New thread(s):", new_threads -+ print("The following test left new threads behind:") -+ print(test) -+ print("New thread(s):", new_threads) - - def print_times(self, stream, count=None): -- results = self._testtimes.items() -+ results = list(self._testtimes.items()) - results.sort(lambda x, y: cmp(y[1], x[1])) - if count: - n = min(count, len(results)) - if n: -- print >>stream, "Top %d longest tests:" % n -+ print("Top %d longest tests:" % n, file=stream) - else: - n = len(results) - if not n: - return - for i in range(n): -- print >>stream, "%6dms" % int(results[i][1] * 1000), results[i][0] -+ print("%6dms" % int(results[i][1] * 1000), results[i][0], file=stream) - - def _print_traceback(self, msg, err, test, errlist): - if self.showAll or self.dots or self._progress: -@@ -369,7 +369,7 @@ class ImmediateTestResult(unittest._Text - if self._progress: - self.stream.write("\r") - if self._debug: -- raise err[0], err[1], err[2] -+ raise err[0](err[1]).with_traceback(err[2]) - self._print_traceback("Error in test %s" % test, err, - test, self.errors) - -@@ -377,7 +377,7 @@ class ImmediateTestResult(unittest._Text - if self._progress: - self.stream.write("\r") - if self._debug: -- raise err[0], err[1], err[2] -+ raise err[0](err[1]).with_traceback(err[2]) - self._print_traceback("Failure in test %s" % test, err, - test, self.failures) - -@@ -480,11 +480,11 @@ class PathInit: - kind = functional and "FUNCTIONAL" or "UNIT" - if libdir: - extra = os.path.join(self.org_cwd, libdir) -- print "Running %s tests from %s" % (kind, extra) -+ print("Running %s tests from %s" % (kind, extra)) - self.libdir = extra - sys.path.insert(0, extra) - else: -- print "Running %s tests from %s" % (kind, self.cwd) -+ print("Running %s tests from %s" % (kind, self.cwd)) - # Make sure functional tests find ftesting.zcml - if functional: - config_file = 'ftesting.zcml' -@@ -492,7 +492,7 @@ class PathInit: - # We chdired into build, so ftesting.zcml is in the - # parent directory - config_file = os.path.join('..', 'ftesting.zcml') -- print "Parsing %s" % config_file -+ print("Parsing %s" % config_file) - from zope.app.tests.functional import FunctionalTestSetup - FunctionalTestSetup(config_file) - -@@ -530,7 +530,7 @@ class TestFileFinder: - if not "__init__.py" in files: - if not files or files == ["CVS"]: - return -- print "not a package", dir -+ print("not a package", dir) - return - - # Put matching files in matches. If matches is non-empty, -@@ -549,9 +549,9 @@ class TestFileFinder: - __import__(pkg) - # We specifically do not want to catch ImportError since that's useful - # information to know when running the tests. -- except RuntimeError, e: -+ except RuntimeError as e: - if VERBOSE: -- print "skipping %s because: %s" % (pkg, e) -+ print("skipping %s because: %s" % (pkg, e)) - return - else: - self.files.extend(matches) -@@ -698,16 +698,16 @@ class TrackRefs: - ct = [(type2count[t] - self.type2count.get(t, 0), - type2all[t] - self.type2all.get(t, 0), - t) -- for t in type2count.iterkeys()] -+ for t in type2count.keys()] - ct.sort() - ct.reverse() - printed = False - for delta1, delta2, t in ct: - if delta1 or delta2: - if not printed: -- print "%-55s %8s %8s" % ('', 'insts', 'refs') -+ print("%-55s %8s %8s" % ('', 'insts', 'refs')) - printed = True -- print "%-55s %8d %8d" % (t, delta1, delta2) -+ print("%-55s %8d %8d" % (t, delta1, delta2)) - - self.type2count = type2count - self.type2all = type2all -@@ -729,25 +729,25 @@ def runner(files, test_filter, debug): - if TIMESFN: - r.print_times(open(TIMESFN, "w")) - if VERBOSE: -- print "Wrote timing data to", TIMESFN -+ print("Wrote timing data to", TIMESFN) - if TIMETESTS: - r.print_times(sys.stdout, TIMETESTS) - except: - if DEBUGGER: -- print "%s:" % (sys.exc_info()[0], ) -- print sys.exc_info()[1] -+ print("%s:" % (sys.exc_info()[0], )) -+ print(sys.exc_info()[1]) - pdb.post_mortem(sys.exc_info()[2]) - else: - raise - - def remove_stale_bytecode(arg, dirname, names): -- names = map(os.path.normcase, names) -+ names = list(map(os.path.normcase, names)) - for name in names: - if name.endswith(".pyc") or name.endswith(".pyo"): - srcname = name[:-1] - if srcname not in names: - fullname = os.path.join(dirname, name) -- print "Removing stale bytecode file", fullname -+ print("Removing stale bytecode file", fullname) - os.unlink(fullname) - - def main(module_filter, test_filter, libdir): -@@ -773,12 +773,12 @@ def main(module_filter, test_filter, lib - runner(files, test_filter, DEBUG) - gc.collect() - if gc.garbage: -- print "GARBAGE:", len(gc.garbage), gc.garbage -+ print("GARBAGE:", len(gc.garbage), gc.garbage) - return - if REFCOUNT: - prev = rc - rc = sys.gettotalrefcount() -- print "totalrefcount=%-8d change=%-6d" % (rc, rc - prev) -+ print("totalrefcount=%-8d change=%-6d" % (rc, rc - prev)) - track.update() - else: - runner(files, test_filter, DEBUG) -@@ -801,7 +801,7 @@ def configure_logging(): - else: - logging.basicConfig() - -- if os.environ.has_key("LOGGING"): -+ if "LOGGING" in os.environ: - level = int(os.environ["LOGGING"]) - logging.getLogger().setLevel(level) - -@@ -865,8 +865,8 @@ def process_args(argv=None): - - # import the config file - if os.path.isfile(config_filename): -- print 'Configuration file found.' -- execfile(config_filename, globals()) -+ print('Configuration file found.') -+ exec(compile(open(config_filename).read(), config_filename, 'exec'), globals()) - - - try: -@@ -884,9 +884,9 @@ def process_args(argv=None): - # fixme: add the long names - # fixme: add the extra documentation - # fixme: test for functional first! -- except getopt.error, msg: -- print msg -- print "Try `python %s -h' for more information." % argv[0] -+ except getopt.error as msg: -+ print(msg) -+ print("Try `python %s -h' for more information." % argv[0]) - sys.exit(2) - - for k, v in opts: -@@ -916,13 +916,13 @@ def process_args(argv=None): - RUN_UNIT = True - RUN_FUNCTIONAL = True - elif k in ("-h", "--help"): -- print __doc__ -+ print(__doc__) - sys.exit(0) - elif k in ("-g", "--gc-threshold"): - GC_THRESHOLD = int(v) - elif k in ("-G", "--gc-option"): - if not v.startswith("DEBUG_"): -- print "-G argument must be DEBUG_ flag, not", repr(v) -+ print("-G argument must be DEBUG_ flag, not", repr(v)) - sys.exit(1) - GC_FLAGS.append(v) - elif k in ('-k', '--keepbytecode'): -@@ -968,30 +968,30 @@ def process_args(argv=None): - import pychecker.checker - - if REFCOUNT and not hasattr(sys, "gettotalrefcount"): -- print "-r ignored, because it needs a debug build of Python" -+ print("-r ignored, because it needs a debug build of Python") - REFCOUNT = False - - if sys.version_info < ( 2,3,2 ): -- print """\ -+ print("""\ - ERROR: Your python version is not supported by Zope3. -- Zope3 needs Python 2.3.2 or greater. You are running:""" + sys.version -+ Zope3 needs Python 2.3.2 or greater. You are running:""" + sys.version) - sys.exit(1) - - if GC_THRESHOLD is not None: - if GC_THRESHOLD == 0: - gc.disable() -- print "gc disabled" -+ print("gc disabled") - else: - gc.set_threshold(GC_THRESHOLD) -- print "gc threshold:", gc.get_threshold() -+ print("gc threshold:", gc.get_threshold()) - - if GC_FLAGS: - val = 0 - for flag in GC_FLAGS: - v = getattr(gc, flag, None) - if v is None: -- print "Unknown gc flag", repr(flag) -- print gc.set_debug.__doc__ -+ print("Unknown gc flag", repr(flag)) -+ print(gc.set_debug.__doc__) - sys.exit(1) - val |= v - gcdebug |= v -@@ -1009,10 +1009,10 @@ def process_args(argv=None): - if BUILD_INPLACE: - cmd += "_ext -i" - if VERBOSE: -- print cmd -+ print(cmd) - sts = os.system(cmd) - if sts: -- print "Build failed", hex(sts) -+ print("Build failed", hex(sts)) - sys.exit(1) - - k = [] -@@ -1027,9 +1027,9 @@ def process_args(argv=None): - if VERBOSE: - kind = functional and "FUNCTIONAL" or "UNIT" - if LEVEL == 0: -- print "Running %s tests at all levels" % kind -+ print("Running %s tests at all levels" % kind) - else: -- print "Running %s tests at level %d" % (kind, LEVEL) -+ print("Running %s tests at level %d" % (kind, LEVEL)) - - # This was to avoid functional tests outside of z3, but this doesn't really - # work right. -@@ -1073,20 +1073,20 @@ def process_args(argv=None): - globals=globals(), locals=vars()) - r = tracer.results() - path = "/tmp/trace.%s" % os.getpid() -- import cPickle -+ import pickle - f = open(path, "wb") -- cPickle.dump(r, f) -+ pickle.dump(r, f) - f.close() -- print path -+ print(path) - r.write_results(show_missing=True, - summary=True, coverdir=coverdir) - else: - bad = main(MODULE_FILTER, TEST_FILTER, LIBDIR) - if bad: - sys.exit(1) -- except ImportError, err: -- print err -- print sys.path -+ except ImportError as err: -+ print(err) -+ print(sys.path) - raise - - -Index: xen-4.13.0-testing/tools/configure.ac -=================================================================== ---- xen-4.13.0-testing.orig/tools/configure.ac -+++ xen-4.13.0-testing/tools/configure.ac -@@ -337,14 +337,14 @@ case "$host_os" in - freebsd*) ;; - *) AX_PATH_PROG_OR_FAIL([BASH], [bash]);; - esac --AS_IF([test -z "$PYTHON"], [AC_CHECK_PROGS([PYTHON], [python python3 python2], err)]) -+AS_IF([test -z "$PYTHON"], [AC_CHECK_PROGS([PYTHON], [python3 python python2], err)]) - AS_IF([test "$PYTHON" = "err"], [AC_MSG_ERROR([No python interpreter found])]) - AS_IF([echo "$PYTHON" | grep -q "^/"], [], [AC_PATH_PROG([PYTHON], [$PYTHON])]) - PYTHONPATH=$PYTHON +--- xen-4.14.0-testing.orig/tools/configure.ac ++++ xen-4.14.0-testing/tools/configure.ac +@@ -372,7 +372,7 @@ PYTHONPATH=$PYTHON PYTHON=`basename $PYTHONPATH` AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON]) @@ -385,10 +48,10 @@ AS_IF([test "$cross_compiling" != yes], [ AX_CHECK_PYTHON_DEVEL() -Index: xen-4.13.0-testing/tools/libxl/idl.py +Index: xen-4.14.0-testing/tools/libxl/idl.py =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/idl.py -+++ xen-4.13.0-testing/tools/libxl/idl.py +--- xen-4.14.0-testing.orig/tools/libxl/idl.py ++++ xen-4.14.0-testing/tools/libxl/idl.py @@ -271,7 +271,7 @@ class KeyedUnion(Aggregate): if not isinstance(keyvar_type, Enumeration): raise ValueError @@ -416,30 +79,30 @@ if isinstance(t, Type): globs[n] = t elif isinstance(t,type(object)) and issubclass(t, Type): -Index: xen-4.13.0-testing/tools/libxl/gentest.py +Index: xen-4.14.0-testing/tools/libxl/gentest.py =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/gentest.py -+++ xen-4.13.0-testing/tools/libxl/gentest.py +--- xen-4.14.0-testing.orig/tools/libxl/gentest.py ++++ xen-4.14.0-testing/tools/libxl/gentest.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 from __future__ import print_function -Index: xen-4.13.0-testing/tools/libxl/gentypes.py +Index: xen-4.14.0-testing/tools/libxl/gentypes.py =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/gentypes.py -+++ xen-4.13.0-testing/tools/libxl/gentypes.py +--- xen-4.14.0-testing.orig/tools/libxl/gentypes.py ++++ xen-4.14.0-testing/tools/libxl/gentypes.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 from __future__ import print_function -Index: xen-4.13.0-testing/tools/ocaml/libs/xentoollog/genlevels.py +Index: xen-4.14.0-testing/tools/ocaml/libs/xentoollog/genlevels.py =================================================================== ---- xen-4.13.0-testing.orig/tools/ocaml/libs/xentoollog/genlevels.py -+++ xen-4.13.0-testing/tools/ocaml/libs/xentoollog/genlevels.py +--- xen-4.14.0-testing.orig/tools/ocaml/libs/xentoollog/genlevels.py ++++ xen-4.14.0-testing/tools/ocaml/libs/xentoollog/genlevels.py @@ -89,7 +89,7 @@ def gen_c(level): def autogen_header(open_comment, close_comment): s = open_comment + " AUTO-GENERATED FILE DO NOT EDIT " + close_comment + "\n" @@ -449,107 +112,60 @@ s += "%s" % " ".join(sys.argv) s += "\n " + close_comment + "\n\n" return s -Index: xen-4.13.0-testing/tools/include/xen-foreign/mkheader.py +Index: xen-4.14.0-testing/tools/include/xen-foreign/mkheader.py =================================================================== ---- xen-4.13.0-testing.orig/tools/include/xen-foreign/mkheader.py -+++ xen-4.13.0-testing/tools/include/xen-foreign/mkheader.py +--- xen-4.14.0-testing.orig/tools/include/xen-foreign/mkheader.py ++++ xen-4.14.0-testing/tools/include/xen-foreign/mkheader.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import sys, re; from structs import unions, structs, defines; -Index: xen-4.13.0-testing/tools/include/xen-foreign/mkchecker.py +Index: xen-4.14.0-testing/tools/include/xen-foreign/mkchecker.py =================================================================== ---- xen-4.13.0-testing.orig/tools/include/xen-foreign/mkchecker.py -+++ xen-4.13.0-testing/tools/include/xen-foreign/mkchecker.py +--- xen-4.14.0-testing.orig/tools/include/xen-foreign/mkchecker.py ++++ xen-4.14.0-testing/tools/include/xen-foreign/mkchecker.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import sys; from structs import structs, compat_arches; -Index: xen-4.13.0-testing/xen/tools/gen-cpuid.py +Index: xen-4.14.0-testing/xen/tools/gen-cpuid.py =================================================================== ---- xen-4.13.0-testing.orig/xen/tools/gen-cpuid.py -+++ xen-4.13.0-testing/xen/tools/gen-cpuid.py +--- xen-4.14.0-testing.orig/xen/tools/gen-cpuid.py ++++ xen-4.14.0-testing/xen/tools/gen-cpuid.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys, os, re -@@ -135,7 +135,7 @@ def crunch_numbers(state): - common_1d = (FPU, VME, DE, PSE, TSC, MSR, PAE, MCE, CX8, APIC, - MTRR, PGE, MCA, CMOV, PAT, PSE36, MMX, FXSR) - -- state.known = featureset_to_uint32s(state.names.keys(), nr_entries) -+ state.known = featureset_to_uint32s(list(state.names.keys()), nr_entries) - state.common_1d = featureset_to_uint32s(common_1d, 1)[0] - state.special = featureset_to_uint32s(state.raw_special, nr_entries) - state.pv = featureset_to_uint32s(state.raw_pv, nr_entries) -@@ -317,11 +317,11 @@ def crunch_numbers(state): - - state.deep_deps[feat] = seen[1:] - -- state.deep_features = featureset_to_uint32s(deps.keys(), nr_entries) -- state.nr_deep_deps = len(state.deep_deps.keys()) -+ state.deep_features = featureset_to_uint32s(list(deps.keys()), nr_entries) -+ state.nr_deep_deps = len(list(state.deep_deps.keys())) - - try: -- _tmp = state.deep_deps.iteritems() -+ _tmp = state.deep_deps.items() - except AttributeError: - _tmp = state.deep_deps.items() - -@@ -329,10 +329,10 @@ def crunch_numbers(state): - state.deep_deps[k] = featureset_to_uint32s(v, nr_entries) - - # Calculate the bitfield name declarations -- for word in xrange(nr_entries): -+ for word in range(nr_entries): - - names = [] -- for bit in xrange(32): -+ for bit in range(32): - - name = state.names.get(word * 32 + bit, "") - -Index: xen-4.13.0-testing/xen/tools/compat-build-source.py +Index: xen-4.14.0-testing/xen/tools/compat-build-source.py =================================================================== ---- xen-4.13.0-testing.orig/xen/tools/compat-build-source.py -+++ xen-4.13.0-testing/xen/tools/compat-build-source.py +--- xen-4.14.0-testing.orig/xen/tools/compat-build-source.py ++++ xen-4.14.0-testing/xen/tools/compat-build-source.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import re,sys -Index: xen-4.13.0-testing/xen/tools/compat-build-header.py +Index: xen-4.14.0-testing/xen/tools/compat-build-header.py =================================================================== ---- xen-4.13.0-testing.orig/xen/tools/compat-build-header.py -+++ xen-4.13.0-testing/xen/tools/compat-build-header.py +--- xen-4.14.0-testing.orig/xen/tools/compat-build-header.py ++++ xen-4.14.0-testing/xen/tools/compat-build-header.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 import re,sys -Index: xen-4.13.0-testing/xen/tools/fig-to-oct.py -=================================================================== ---- xen-4.13.0-testing.orig/xen/tools/fig-to-oct.py -+++ xen-4.13.0-testing/xen/tools/fig-to-oct.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - import sys - - chars_per_line = 18 -Index: xen-4.13.0-testing/tools/misc/xensymoops +Index: xen-4.14.0-testing/tools/misc/xensymoops =================================================================== ---- xen-4.13.0-testing.orig/tools/misc/xensymoops -+++ xen-4.13.0-testing/tools/misc/xensymoops +--- xen-4.14.0-testing.orig/tools/misc/xensymoops ++++ xen-4.14.0-testing/tools/misc/xensymoops @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 ++++++ disable-building-pv-shim.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:53.749091228 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:53.749091228 +0200 @@ -1,5 +1,7 @@ ---- xen-4.13.0-testing/xen/arch/x86/configs/pvshim_defconfig.orig 2019-10-14 09:46:44.567846243 -0600 -+++ xen-4.13.0-testing/xen/arch/x86/configs/pvshim_defconfig 2019-10-14 09:47:17.722552005 -0600 +Index: xen-4.14.0-testing/xen/arch/x86/configs/pvshim_defconfig +=================================================================== +--- xen-4.14.0-testing.orig/xen/arch/x86/configs/pvshim_defconfig ++++ xen-4.14.0-testing/xen/arch/x86/configs/pvshim_defconfig @@ -2,8 +2,8 @@ CONFIG_PV=y CONFIG_XEN_GUEST=y @@ -9,5 +11,5 @@ +CONFIG_PV_SHIM=n +CONFIG_PV_SHIM_EXCLUSIVE=n CONFIG_NR_CPUS=32 - # Disable features not used by the PV shim - # CONFIG_SHADOW_PAGING is not set + CONFIG_EXPERT=y + CONFIG_SCHED_NULL=y ++++++ gcc10-fixes.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:53.777091235 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:53.777091235 +0200 @@ -82,10 +82,10 @@ | ^~~~~~~~~~~~~~~~~~~~~~~ -Index: xen-4.13.0-testing/tools/libxl/libxlu_pci.c +Index: xen-4.14.0-testing/tools/libxl/libxlu_pci.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlu_pci.c -+++ xen-4.13.0-testing/tools/libxl/libxlu_pci.c +--- xen-4.14.0-testing.orig/tools/libxl/libxlu_pci.c ++++ xen-4.14.0-testing/tools/libxl/libxlu_pci.c @@ -22,6 +22,9 @@ static int hex_convert(const char *str, return 0; } @@ -96,11 +96,11 @@ static int pcidev_struct_fill(libxl_device_pci *pcidev, unsigned int domain, unsigned int bus, unsigned int dev, unsigned int func, unsigned int vdevfn) -Index: xen-4.13.0-testing/tools/debugger/kdd/kdd.c +Index: xen-4.14.0-testing/tools/debugger/kdd/kdd.c =================================================================== ---- xen-4.13.0-testing.orig/tools/debugger/kdd/kdd.c -+++ xen-4.13.0-testing/tools/debugger/kdd/kdd.c -@@ -396,6 +396,9 @@ static void find_os(kdd_state *s) +--- xen-4.14.0-testing.orig/tools/debugger/kdd/kdd.c ++++ xen-4.14.0-testing/tools/debugger/kdd/kdd.c +@@ -734,6 +734,9 @@ static void find_os(kdd_state *s) */ @@ -110,10 +110,10 @@ /* Send a serial packet */ static void kdd_tx(kdd_state *s) { -Index: xen-4.13.0-testing/stubdom/polarssl.patch +Index: xen-4.14.0-testing/stubdom/polarssl.patch =================================================================== ---- xen-4.13.0-testing.orig/stubdom/polarssl.patch -+++ xen-4.13.0-testing/stubdom/polarssl.patch +--- xen-4.14.0-testing.orig/stubdom/polarssl.patch ++++ xen-4.14.0-testing/stubdom/polarssl.patch @@ -62,3 +62,25 @@ diff -Naur polarssl-1.1.4/library/bignum t_udbl r; @@ -140,42 +140,10 @@ + /* + * Reset an initialized and used SSL context for re-use while retaining + * all application-set variables, function pointers and data. -Index: xen-4.13.0-testing/tools/xenstore/xenstored_core.h +Index: xen-4.14.0-testing/tools/libxl/libxl_utils.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xenstore/xenstored_core.h -+++ xen-4.13.0-testing/tools/xenstore/xenstored_core.h -@@ -204,7 +204,11 @@ void finish_daemonize(void); - /* Open a pipe for signal handling */ - void init_pipe(int reopen_log_pipe[2]); - -+#if __GNUC__ >= 10 -+extern xengnttab_handle **xgt_handle; -+#else - xengnttab_handle **xgt_handle; -+#endif - - int remember_string(struct hashtable *hash, const char *str); - -Index: xen-4.13.0-testing/tools/xenstore/utils.h -=================================================================== ---- xen-4.13.0-testing.orig/tools/xenstore/utils.h -+++ xen-4.13.0-testing/tools/xenstore/utils.h -@@ -24,7 +24,11 @@ static inline bool strends(const char *a - void barf(const char *fmt, ...) __attribute__((noreturn)); - void barf_perror(const char *fmt, ...) __attribute__((noreturn)); - -+#if __GNUC__ >= 10 -+extern void (*xprintf)(const char *fmt, ...); -+#else - void (*xprintf)(const char *fmt, ...); -+#endif - - #define eprintf(_fmt, _args...) xprintf("[ERR] %s" _fmt, __FUNCTION__, ##_args) - -Index: xen-4.13.0-testing/tools/libxl/libxl_utils.c -=================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_utils.c -+++ xen-4.13.0-testing/tools/libxl/libxl_utils.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_utils.c ++++ xen-4.14.0-testing/tools/libxl/libxl_utils.c @@ -1248,6 +1248,9 @@ int libxl__random_bytes(libxl__gc *gc, u return ret; } @@ -186,10 +154,10 @@ int libxl__prepare_sockaddr_un(libxl__gc *gc, struct sockaddr_un *un, const char *path, const char *what) -Index: xen-4.13.0-testing/tools/xenpmd/xenpmd.c +Index: xen-4.14.0-testing/tools/xenpmd/xenpmd.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xenpmd/xenpmd.c -+++ xen-4.13.0-testing/tools/xenpmd/xenpmd.c +--- xen-4.14.0-testing.orig/tools/xenpmd/xenpmd.c ++++ xen-4.14.0-testing/tools/xenpmd/xenpmd.c @@ -86,6 +86,9 @@ struct battery_status { static struct xs_handle *xs; ++++++ ignore-ip-command-script-errors.patch ++++++ References: bsc#1172356 The bug is that virt-manager reports a failure when in fact the host and guest have added the network interface. The Xen scripts are failing with an error when in fact that command is succeeding. The 'ip' commands seem to abort the script due to a 'set -e' in xen-script-common.sh with what appears to be an error condition. However, the command actually succeeds when checked from the host console or also by inserting a sleep before each ip command and executing it manually at the command line. This seems to be an artifact of using 'set -e' everywhere. Index: xen-4.14.0-testing/tools/hotplug/Linux/xen-network-common.sh =================================================================== --- xen-4.14.0-testing.orig/tools/hotplug/Linux/xen-network-common.sh +++ xen-4.14.0-testing/tools/hotplug/Linux/xen-network-common.sh @@ -90,7 +90,7 @@ _setup_bridge_port() { local virtual="$2" # take interface down ... - ip link set dev ${dev} down + (ip link set dev ${dev} down || true) if [ $virtual -ne 0 ] ; then # Initialise a dummy MAC address. We choose the numerically @@ -101,7 +101,7 @@ _setup_bridge_port() { fi # ... and configure it - ip address flush dev ${dev} + (ip address flush dev ${dev} || true) } setup_physical_bridge_port() { @@ -138,11 +138,11 @@ add_to_bridge () { return fi if which brctl >&/dev/null; then - brctl addif ${bridge} ${dev} + (brctl addif ${bridge} ${dev} || true) else - ip link set ${dev} master ${bridge} + (ip link set ${dev} master ${bridge} || true) fi - ip link set dev ${dev} up + (ip link set dev ${dev} up || true) } # Usage: set_mtu bridge dev ++++++ ipxe.tar.bz2 ++++++ ++++++ libxc.migrate_tracking.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:54.985091518 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:54.985091518 +0200 @@ -1,9 +1,75 @@ Track live migration state unconditionally in logfiles to see how long a domU was suspended. Depends on libxc.sr.superpage.patch ---- a/tools/libxc/xc_sr_common.c -+++ b/tools/libxc/xc_sr_common.c -@@ -196,6 +196,65 @@ bool _xc_sr_bitmap_resize(struct xc_sr_b +Index: xen-4.14.0-testing/tools/libxc/xc_domain.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_domain.c ++++ xen-4.14.0-testing/tools/libxc/xc_domain.c +@@ -69,20 +69,26 @@ int xc_domain_cacheflush(xc_interface *x + int xc_domain_pause(xc_interface *xch, + uint32_t domid) + { ++ int ret; + DECLARE_DOMCTL; + domctl.cmd = XEN_DOMCTL_pausedomain; + domctl.domain = domid; +- return do_domctl(xch, &domctl); ++ ret = do_domctl(xch, &domctl); ++ SUSEINFO("domid %u: %s returned %d", domid, __func__, ret); ++ return ret; + } + + + int xc_domain_unpause(xc_interface *xch, + uint32_t domid) + { ++ int ret; + DECLARE_DOMCTL; + domctl.cmd = XEN_DOMCTL_unpausedomain; + domctl.domain = domid; +- return do_domctl(xch, &domctl); ++ ret = do_domctl(xch, &domctl); ++ SUSEINFO("domid %u: %s returned %d", domid, __func__, ret); ++ return ret; + } + + +Index: xen-4.14.0-testing/tools/libxc/xc_private.h +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_private.h ++++ xen-4.14.0-testing/tools/libxc/xc_private.h +@@ -42,6 +42,11 @@ + + #include <xen-tools/libs.h> + ++#define SUSEINFO(_m, _a...) do { int ERROR_errno = errno; \ ++ xc_report(xch, xch->error_handler, XTL_ERROR, XC_ERROR_NONE, "SUSEINFO: " _m , ## _a ); \ ++ errno = ERROR_errno; \ ++ } while (0) ++ + #if defined(HAVE_VALGRIND_MEMCHECK_H) && !defined(NDEBUG) && !defined(__MINIOS__) + /* Compile in Valgrind client requests? */ + #include <valgrind/memcheck.h> +Index: xen-4.14.0-testing/tools/libxc/xc_resume.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_resume.c ++++ xen-4.14.0-testing/tools/libxc/xc_resume.c +@@ -284,7 +284,9 @@ out: + */ + int xc_domain_resume(xc_interface *xch, uint32_t domid, int fast) + { +- return (fast ++ int ret = (fast + ? xc_domain_resume_cooperative(xch, domid) + : xc_domain_resume_any(xch, domid)); ++ SUSEINFO("domid %u: %s%s returned %d", domid, __func__, fast ? " fast" : "", ret); ++ return ret; + } +Index: xen-4.14.0-testing/tools/libxc/xc_sr_common.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_common.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_common.c +@@ -197,6 +197,65 @@ bool _xc_sr_bitmap_resize(struct xc_sr_b return true; } @@ -69,28 +135,19 @@ /* * Local variables: * mode: C ---- a/tools/libxc/xc_sr_common.h -+++ b/tools/libxc/xc_sr_common.h -@@ -10,6 +10,10 @@ - - #include "xc_sr_stream_format.h" - -+#define SUSEINFO(_m, _a...) do { int ERROR_errno = errno; \ -+ xc_report(xch, xch->error_handler, XTL_ERROR, XC_ERROR_NONE, "SUSEINFO: " _m , ## _a ); \ -+ errno = ERROR_errno; \ -+ } while (0) - /* String representation of Domain Header types. */ - const char *dhdr_type_to_str(uint32_t type); - -@@ -195,6 +199,7 @@ struct xc_sr_context - int fd; +Index: xen-4.14.0-testing/tools/libxc/xc_sr_common.h +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_common.h ++++ xen-4.14.0-testing/tools/libxc/xc_sr_common.h +@@ -238,6 +238,7 @@ struct xc_sr_context + xc_stream_type_t stream_type; xc_dominfo_t dominfo; + char uuid[16*2+4+1]; union /* Common save or restore data. */ { -@@ -427,6 +432,8 @@ static inline int pfn_set_populated(stru +@@ -483,6 +484,8 @@ static inline int pfn_set_populated(stru return 0; } @@ -99,9 +156,11 @@ struct xc_sr_record { uint32_t type; ---- a/tools/libxc/xc_sr_restore.c -+++ b/tools/libxc/xc_sr_restore.c -@@ -608,6 +608,7 @@ static int restore(struct xc_sr_context +Index: xen-4.14.0-testing/tools/libxc/xc_sr_restore.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_restore.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_restore.c +@@ -670,6 +670,7 @@ static int restore(struct xc_sr_context struct xc_sr_record rec; int rc, saved_rc = 0, saved_errno = 0; @@ -109,7 +168,7 @@ IPRINTF("Restoring domain"); rc = setup(ctx); -@@ -684,6 +685,7 @@ static int restore(struct xc_sr_context +@@ -745,6 +746,7 @@ static int restore(struct xc_sr_context PERROR("Restore failed"); done: @@ -117,17 +176,19 @@ cleanup(ctx); if ( saved_rc ) -@@ -748,6 +750,7 @@ int xc_domain_restore(xc_interface *xch, - } +@@ -814,6 +816,7 @@ int xc_domain_restore(xc_interface *xch, + io_fd, dom, ctx.dominfo.hvm, stream_type); ctx.domid = dom; + sr_uuid_to_string(ctx.uuid, ctx.dominfo.handle); if ( read_headers(&ctx) ) return -1; ---- a/tools/libxc/xc_sr_save.c -+++ b/tools/libxc/xc_sr_save.c -@@ -852,6 +852,7 @@ static int save(struct xc_sr_context *ct +Index: xen-4.14.0-testing/tools/libxc/xc_sr_save.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_save.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_save.c +@@ -863,6 +863,7 @@ static int save(struct xc_sr_context *ct xc_interface *xch = ctx->xch; int rc, saved_rc = 0, saved_errno = 0; @@ -135,7 +196,7 @@ IPRINTF("Saving domain %d, type %s", ctx->domid, dhdr_type_to_str(guest_type)); -@@ -964,6 +965,7 @@ static int save(struct xc_sr_context *ct +@@ -983,6 +984,7 @@ static int save(struct xc_sr_context *ct PERROR("Save failed"); done: @@ -143,7 +204,7 @@ cleanup(ctx); if ( saved_rc ) -@@ -1019,6 +1021,10 @@ static int suse_precopy_policy(struct pr +@@ -1038,6 +1040,10 @@ static int suse_precopy_policy(struct pr goto out; } /* Keep going */ @@ -154,7 +215,7 @@ return XGS_POLICY_CONTINUE_PRECOPY; out: -@@ -1032,6 +1038,9 @@ out: +@@ -1051,6 +1057,9 @@ out: return XGS_POLICY_ABORT; } suspend: @@ -164,8 +225,8 @@ return XGS_POLICY_STOP_AND_COPY; } -@@ -1095,6 +1104,7 @@ int xc_domain_save_suse(xc_interface *xc - } +@@ -1120,6 +1129,7 @@ int xc_domain_save_suse(xc_interface *xc + io_fd, dom, flags, ctx.dominfo.hvm); ctx.domid = dom; + sr_uuid_to_string(ctx.uuid, ctx.dominfo.handle); ++++++ libxc.sr.superpage.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.005091522 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.005091522 +0200 @@ -12,10 +12,10 @@ must be freed on the receiving side to avoid over-allocation. The existing code for x86_pv is moved unmodified into its own file. -Index: xen-4.13.1-testing/tools/libxc/xc_dom_x86.c +Index: xen-4.14.0-testing/tools/libxc/xc_dom_x86.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_dom_x86.c -+++ xen-4.13.1-testing/tools/libxc/xc_dom_x86.c +--- xen-4.14.0-testing.orig/tools/libxc/xc_dom_x86.c ++++ xen-4.14.0-testing/tools/libxc/xc_dom_x86.c @@ -45,11 +45,6 @@ #define SUPERPAGE_BATCH_SIZE 512 @@ -28,10 +28,10 @@ #define X86_CR0_PE 0x01 #define X86_CR0_ET 0x10 -Index: xen-4.13.1-testing/tools/libxc/xc_private.h +Index: xen-4.14.0-testing/tools/libxc/xc_private.h =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_private.h -+++ xen-4.13.1-testing/tools/libxc/xc_private.h +--- xen-4.14.0-testing.orig/tools/libxc/xc_private.h ++++ xen-4.14.0-testing/tools/libxc/xc_private.h @@ -71,6 +71,11 @@ struct iovec { #define DECLARE_FLASK_OP struct xen_flask_op op #define DECLARE_PLATFORM_OP struct xen_platform_op platform_op @@ -44,11 +44,11 @@ #undef PAGE_SHIFT #undef PAGE_SIZE #undef PAGE_MASK -Index: xen-4.13.1-testing/tools/libxc/xc_sr_common.c +Index: xen-4.14.0-testing/tools/libxc/xc_sr_common.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_sr_common.c -+++ xen-4.13.1-testing/tools/libxc/xc_sr_common.c -@@ -156,6 +156,47 @@ static void __attribute__((unused)) buil +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_common.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_common.c +@@ -157,6 +157,47 @@ static void __attribute__((unused)) buil } /* @@ -96,11 +96,11 @@ * Local variables: * mode: C * c-file-style: "BSD" -Index: xen-4.13.1-testing/tools/libxc/xc_sr_common.h +Index: xen-4.14.0-testing/tools/libxc/xc_sr_common.h =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_sr_common.h -+++ xen-4.13.1-testing/tools/libxc/xc_sr_common.h -@@ -140,6 +140,16 @@ struct xc_sr_restore_ops +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_common.h ++++ xen-4.14.0-testing/tools/libxc/xc_sr_common.h +@@ -146,6 +146,16 @@ struct xc_sr_restore_ops int (*setup)(struct xc_sr_context *ctx); /** @@ -117,9 +117,9 @@ * Process an individual record from the stream. The caller shall take * care of processing common records (e.g. END, PAGE_DATA). * -@@ -172,6 +182,12 @@ struct xc_sr_x86_pv_restore_vcpu - size_t basicsz, extdsz, xsavesz, msrsz; - }; +@@ -212,6 +222,12 @@ static inline int update_blob(struct xc_ + return 0; + } +struct xc_sr_bitmap +{ @@ -130,7 +130,7 @@ struct xc_sr_context { xc_interface *xch; -@@ -216,6 +232,8 @@ struct xc_sr_context +@@ -256,6 +272,8 @@ struct xc_sr_context int send_back_fd; unsigned long p2m_size; @@ -139,7 +139,7 @@ xc_hypercall_buffer_t dirty_bitmap_hbuf; /* From Image Header. */ -@@ -253,8 +271,7 @@ struct xc_sr_context +@@ -293,8 +311,7 @@ struct xc_sr_context uint32_t xenstore_domid, console_domid; /* Bitmap of currently populated PFNs during restore. */ @@ -149,20 +149,20 @@ /* Sender has invoked verify mode on the stream. */ bool verify; -@@ -329,6 +346,12 @@ struct xc_sr_context - /* HVM context blob. */ - void *context; - size_t contextsz; -+ -+ /* Bitmap of currently allocated PFNs during restore. */ -+ struct xc_sr_bitmap attempted_1g; -+ struct xc_sr_bitmap attempted_2m; -+ struct xc_sr_bitmap allocated_pfns; -+ xen_pfn_t idx1G_prev, idx2M_prev; - } restore; - }; - } x86_hvm; -@@ -341,6 +364,69 @@ extern struct xc_sr_save_ops save_ops_x8 +@@ -383,6 +400,12 @@ struct xc_sr_context + { + /* HVM context blob. */ + struct xc_sr_blob context; ++ ++ /* Bitmap of currently allocated PFNs during restore. */ ++ struct xc_sr_bitmap attempted_1g; ++ struct xc_sr_bitmap attempted_2m; ++ struct xc_sr_bitmap allocated_pfns; ++ xen_pfn_t idx1G_prev, idx2M_prev; + } restore; + }; + } hvm; +@@ -397,6 +420,69 @@ extern struct xc_sr_save_ops save_ops_x8 extern struct xc_sr_restore_ops restore_ops_x86_pv; extern struct xc_sr_restore_ops restore_ops_x86_hvm; @@ -232,7 +232,7 @@ struct xc_sr_record { uint32_t type; -@@ -389,14 +475,6 @@ static inline int write_record(struct xc +@@ -445,14 +531,6 @@ static inline int write_record(struct xc */ int read_record(struct xc_sr_context *ctx, int fd, struct xc_sr_record *rec); @@ -241,17 +241,17 @@ - * x86_pv_localise_page() if we receive pagetables frames ahead of the - * contents of the frames they point at. - */ --int populate_pfns(struct xc_sr_context *ctx, unsigned count, +-int populate_pfns(struct xc_sr_context *ctx, unsigned int count, - const xen_pfn_t *original_pfns, const uint32_t *types); - - #endif - /* - * Local variables: -Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore.c + /* Handle a STATIC_DATA_END record. */ + int handle_static_data_end(struct xc_sr_context *ctx); + +Index: xen-4.14.0-testing/tools/libxc/xc_sr_restore.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore.c -+++ xen-4.13.1-testing/tools/libxc/xc_sr_restore.c -@@ -69,132 +69,6 @@ static int read_headers(struct xc_sr_con +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_restore.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_restore.c +@@ -72,132 +72,6 @@ static int read_headers(struct xc_sr_con } /* @@ -317,13 +317,13 @@ - * unpopulated subset. If types is NULL, no page type checking is performed - * and all unpopulated pfns are populated. - */ --int populate_pfns(struct xc_sr_context *ctx, unsigned count, +-int populate_pfns(struct xc_sr_context *ctx, unsigned int count, - const xen_pfn_t *original_pfns, const uint32_t *types) -{ - xc_interface *xch = ctx->xch; - xen_pfn_t *mfns = malloc(count * sizeof(*mfns)), - *pfns = malloc(count * sizeof(*pfns)); -- unsigned i, nr_pfns = 0; +- unsigned int i, nr_pfns = 0; - int rc = -1; - - if ( !mfns || !pfns ) @@ -384,7 +384,7 @@ * Given a list of pfns, their types, and a block of page data from the * stream, populate and record their types, map the relevant subset and copy * the data into the guest. -@@ -219,7 +93,7 @@ static int process_page_data(struct xc_s +@@ -222,7 +96,7 @@ static int process_page_data(struct xc_s goto err; } @@ -393,7 +393,7 @@ if ( rc ) { ERROR("Failed to populate pfns for batch of %u pages", count); -@@ -684,10 +558,8 @@ static int setup(struct xc_sr_context *c +@@ -744,10 +618,8 @@ static int setup(struct xc_sr_context *c if ( rc ) goto err; @@ -406,16 +406,16 @@ { ERROR("Unable to allocate memory for populated_pfns bitmap"); rc = -1; -@@ -722,7 +594,7 @@ static void cleanup(struct xc_sr_context - xc_hypercall_buffer_free_pages(xch, dirty_bitmap, - NRPAGES(bitmap_size(ctx->restore.p2m_size))); +@@ -783,7 +655,7 @@ static void cleanup(struct xc_sr_context + xch, dirty_bitmap, NRPAGES(bitmap_size(ctx->restore.p2m_size))); + free(ctx->restore.buffered_records); - free(ctx->restore.populated_pfns); + xc_sr_bitmap_free(&ctx->restore.populated_pfns); + if ( ctx->restore.ops.cleanup(ctx) ) PERROR("Failed to clean up"); - } -@@ -886,7 +758,12 @@ int xc_domain_restore(xc_interface *xch, +@@ -952,7 +824,12 @@ int xc_domain_restore(xc_interface *xch, return -1; } @@ -425,14 +425,14 @@ ctx.restore.p2m_size = nr_pfns; + DPRINTF("dom %u p2m_size %lx max_pages %lx", + ctx.domid, ctx.restore.p2m_size, ctx.restore.max_pages); + ctx.restore.ops = ctx.dominfo.hvm + ? restore_ops_x86_hvm : restore_ops_x86_pv; - if ( ctx.dominfo.hvm ) - { -Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_hvm.c +Index: xen-4.14.0-testing/tools/libxc/xc_sr_restore_x86_hvm.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore_x86_hvm.c -+++ xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_hvm.c -@@ -135,6 +135,8 @@ static int x86_hvm_localise_page(struct +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_restore_x86_hvm.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_restore_x86_hvm.c +@@ -136,6 +136,8 @@ static int x86_hvm_localise_page(struct static int x86_hvm_setup(struct xc_sr_context *ctx) { xc_interface *xch = ctx->xch; @@ -441,28 +441,28 @@ if ( ctx->restore.guest_type != DHDR_TYPE_X86_HVM ) { -@@ -158,7 +160,30 @@ static int x86_hvm_setup(struct xc_sr_co +@@ -161,7 +163,30 @@ static int x86_hvm_setup(struct xc_sr_co } #endif -+ bm = &ctx->x86_hvm.restore.attempted_1g; ++ bm = &ctx->x86.hvm.restore.attempted_1g; + bits = (ctx->restore.p2m_size >> SUPERPAGE_1GB_SHIFT) + 1; + if ( xc_sr_bitmap_resize(bm, bits) == false ) + goto out; + -+ bm = &ctx->x86_hvm.restore.attempted_2m; ++ bm = &ctx->x86.hvm.restore.attempted_2m; + bits = (ctx->restore.p2m_size >> SUPERPAGE_2MB_SHIFT) + 1; + if ( xc_sr_bitmap_resize(bm, bits) == false ) + goto out; + -+ bm = &ctx->x86_hvm.restore.allocated_pfns; ++ bm = &ctx->x86.hvm.restore.allocated_pfns; + bits = ctx->restore.p2m_size + 1; + if ( xc_sr_bitmap_resize(bm, bits) == false ) + goto out; + + /* No superpage in 1st 2MB due to VGA hole */ -+ xc_sr_set_bit(0, &ctx->x86_hvm.restore.attempted_1g); -+ xc_sr_set_bit(0, &ctx->x86_hvm.restore.attempted_2m); ++ xc_sr_set_bit(0, &ctx->x86.hvm.restore.attempted_1g); ++ xc_sr_set_bit(0, &ctx->x86.hvm.restore.attempted_2m); + return 0; + @@ -472,33 +472,36 @@ } /* -@@ -233,10 +258,325 @@ static int x86_hvm_stream_complete(struc +@@ -242,6 +267,9 @@ static int x86_hvm_stream_complete(struc static int x86_hvm_cleanup(struct xc_sr_context *ctx) { - free(ctx->x86_hvm.restore.context); -+ xc_sr_bitmap_free(&ctx->x86_hvm.restore.attempted_1g); -+ xc_sr_bitmap_free(&ctx->x86_hvm.restore.attempted_2m); -+ xc_sr_bitmap_free(&ctx->x86_hvm.restore.allocated_pfns); -+ -+ return 0; -+} -+ + free(ctx->x86.hvm.restore.context.ptr); ++ xc_sr_bitmap_free(&ctx->x86.hvm.restore.attempted_1g); ++ xc_sr_bitmap_free(&ctx->x86.hvm.restore.attempted_2m); ++ xc_sr_bitmap_free(&ctx->x86.hvm.restore.allocated_pfns); + + free(ctx->x86.restore.cpuid.ptr); + free(ctx->x86.restore.msr.ptr); +@@ -249,6 +277,318 @@ static int x86_hvm_cleanup(struct xc_sr_ + return 0; + } + +/* + * Set a pfn as allocated, expanding the tracking structures if needed. + */ +static int pfn_set_allocated(struct xc_sr_context *ctx, xen_pfn_t pfn) +{ + xc_interface *xch = ctx->xch; - -+ if ( !xc_sr_set_bit(pfn, &ctx->x86_hvm.restore.allocated_pfns) ) ++ ++ if ( !xc_sr_set_bit(pfn, &ctx->x86.hvm.restore.allocated_pfns) ) + { + ERROR("Failed to realloc allocated_pfns bitmap"); + errno = ENOMEM; + return -1; + } - return 0; - } - ++ return 0; ++} ++ +struct x86_hvm_sp { + xen_pfn_t pfn; + xen_pfn_t base_pfn; @@ -518,7 +521,7 @@ + int i, done; + xen_pfn_t extent; + -+ bm = &ctx->x86_hvm.restore.attempted_1g; ++ bm = &ctx->x86.hvm.restore.attempted_1g; + + /* Only one attempt to avoid overlapping allocation */ + if ( xc_sr_test_and_set_bit(sp->index, bm) ) @@ -543,7 +546,7 @@ + DPRINTF("1G base_pfn %" PRI_xen_pfn "\n", sp->base_pfn); + + /* Mark all 2MB pages as done to avoid overlapping allocation */ -+ bm = &ctx->x86_hvm.restore.attempted_2m; ++ bm = &ctx->x86.hvm.restore.attempted_2m; + shift = SUPERPAGE_1GB_SHIFT - SUPERPAGE_2MB_SHIFT; + for ( i = 0; i < (sp->count >> shift); i++ ) + xc_sr_set_bit((sp->base_pfn >> SUPERPAGE_2MB_SHIFT) + i, bm); @@ -560,7 +563,7 @@ + int done; + xen_pfn_t extent; + -+ bm = &ctx->x86_hvm.restore.attempted_2m; ++ bm = &ctx->x86.hvm.restore.attempted_2m; + + /* Only one attempt to avoid overlapping allocation */ + if ( xc_sr_test_and_set_bit(sp->index, bm) ) @@ -626,17 +629,17 @@ + .pfn = pfn + }; + -+ if ( xc_sr_test_bit(pfn, &ctx->x86_hvm.restore.allocated_pfns) ) ++ if ( xc_sr_test_bit(pfn, &ctx->x86.hvm.restore.allocated_pfns) ) + return 0; + + idx_1g = pfn >> SUPERPAGE_1GB_SHIFT; + idx_2m = pfn >> SUPERPAGE_2MB_SHIFT; -+ if ( !xc_sr_bitmap_resize(&ctx->x86_hvm.restore.attempted_1g, idx_1g) ) ++ if ( !xc_sr_bitmap_resize(&ctx->x86.hvm.restore.attempted_1g, idx_1g) ) + { + PERROR("Failed to realloc attempted_1g"); + return -1; + } -+ if ( !xc_sr_bitmap_resize(&ctx->x86_hvm.restore.attempted_2m, idx_2m) ) ++ if ( !xc_sr_bitmap_resize(&ctx->x86.hvm.restore.attempted_2m, idx_2m) ) + { + PERROR("Failed to realloc attempted_2m"); + return -1; @@ -684,7 +687,7 @@ + + while ( pfn <= max_pfn ) + { -+ bm = &ctx->x86_hvm.restore.allocated_pfns; ++ bm = &ctx->x86.hvm.restore.allocated_pfns; + if ( !xc_sr_bitmap_resize(bm, pfn) ) + { + PERROR("Failed to realloc allocated_pfns %" PRI_xen_pfn, pfn); @@ -747,8 +750,8 @@ + * to release memory, starting from the 1GB boundary up to the highest + * pfn within the previous 2MB superpage. + */ -+ if ( ctx->x86_hvm.restore.idx1G_prev == idx1G && -+ ctx->x86_hvm.restore.idx2M_prev == idx2M ) ++ if ( ctx->x86.hvm.restore.idx1G_prev == idx1G && ++ ctx->x86.hvm.restore.idx2M_prev == idx2M ) + { + /* Same 2MB superpage, nothing to do */ + ; @@ -758,15 +761,15 @@ + * required to scan the entire previous superpage because there + * might be holes between the last pfn and the end of the superpage. + */ -+ if ( ctx->x86_hvm.restore.idx1G_prev != idx1G ) ++ if ( ctx->x86.hvm.restore.idx1G_prev != idx1G ) + { + order = SUPERPAGE_1GB_SHIFT; -+ max_pfn = ((ctx->x86_hvm.restore.idx1G_prev + 1) << order) - 1; ++ max_pfn = ((ctx->x86.hvm.restore.idx1G_prev + 1) << order) - 1; + } + else + { + order = SUPERPAGE_2MB_SHIFT; -+ max_pfn = ((ctx->x86_hvm.restore.idx2M_prev + 1) << order) - 1; ++ max_pfn = ((ctx->x86.hvm.restore.idx2M_prev + 1) << order) - 1; + } + + if ( x86_hvm_punch_hole(ctx, max_pfn) == false ) @@ -784,8 +787,8 @@ + if ( rc ) + goto err; + } -+ ctx->x86_hvm.restore.idx1G_prev = idx1G; -+ ctx->x86_hvm.restore.idx2M_prev = idx2M; ++ ctx->x86.hvm.restore.idx1G_prev = idx1G; ++ ctx->x86.hvm.restore.idx2M_prev = idx2M; + } + + rc = 0; @@ -798,18 +801,18 @@ struct xc_sr_restore_ops restore_ops_x86_hvm = { .pfn_is_valid = x86_hvm_pfn_is_valid, -@@ -245,6 +585,7 @@ struct xc_sr_restore_ops restore_ops_x86 +@@ -257,6 +597,7 @@ struct xc_sr_restore_ops restore_ops_x86 .set_page_type = x86_hvm_set_page_type, .localise_page = x86_hvm_localise_page, .setup = x86_hvm_setup, + .populate_pfns = x86_hvm_populate_pfns, .process_record = x86_hvm_process_record, + .static_data_complete = x86_static_data_complete, .stream_complete = x86_hvm_stream_complete, - .cleanup = x86_hvm_cleanup, -Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_pv.c +Index: xen-4.14.0-testing/tools/libxc/xc_sr_restore_x86_pv.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore_x86_pv.c -+++ xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_pv.c +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_restore_x86_pv.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_restore_x86_pv.c @@ -960,6 +960,75 @@ static void x86_pv_set_gfn(struct xc_sr_ } @@ -895,11 +898,11 @@ return -1; for ( i = 0; i < (PAGE_SIZE / sizeof(uint64_t)); ++i ) -@@ -1183,6 +1252,7 @@ struct xc_sr_restore_ops restore_ops_x86 +@@ -1193,6 +1262,7 @@ struct xc_sr_restore_ops restore_ops_x86 .set_gfn = x86_pv_set_gfn, .localise_page = x86_pv_localise_page, .setup = x86_pv_setup, + .populate_pfns = x86_pv_populate_pfns, .process_record = x86_pv_process_record, + .static_data_complete = x86_static_data_complete, .stream_complete = x86_pv_stream_complete, - .cleanup = x86_pv_cleanup, ++++++ libxl.LIBXL_HOTPLUG_TIMEOUT.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.025091527 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.029091528 +0200 @@ -52,10 +52,10 @@ The change for libxl which handles this xenstore value will enable additional logging if the key is found. That extra logging will show how the execution time of each script. -Index: xen-4.13.0-testing/tools/libxl/libxl_aoutils.c +Index: xen-4.14.0-testing/tools/libxl/libxl_aoutils.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_aoutils.c -+++ xen-4.13.0-testing/tools/libxl/libxl_aoutils.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_aoutils.c ++++ xen-4.14.0-testing/tools/libxl/libxl_aoutils.c @@ -529,6 +529,8 @@ static void async_exec_timeout(libxl__eg { libxl__async_exec_state *aes = CONTAINER_OF(ev, *aes, time); @@ -85,11 +85,11 @@ libxl__ev_time_deregister(gc, &aes->time); -Index: xen-4.13.0-testing/tools/libxl/libxl_create.c +Index: xen-4.14.0-testing/tools/libxl/libxl_create.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_create.c -+++ xen-4.13.0-testing/tools/libxl/libxl_create.c -@@ -1116,6 +1116,7 @@ static void initiate_domain_create(libxl +--- xen-4.14.0-testing.orig/tools/libxl/libxl_create.c ++++ xen-4.14.0-testing/tools/libxl/libxl_create.c +@@ -1247,6 +1247,7 @@ static void initiate_domain_create(libxl * build info around just to know if the domain has a device model or not. */ store_libxl_entry(gc, domid, &d_config->b_info); @@ -97,10 +97,10 @@ for (i = 0; i < d_config->num_disks; i++) { ret = libxl__disk_devtype.set_default(gc, domid, &d_config->disks[i], -Index: xen-4.13.0-testing/tools/libxl/libxl_device.c +Index: xen-4.14.0-testing/tools/libxl/libxl_device.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_device.c -+++ xen-4.13.0-testing/tools/libxl/libxl_device.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_device.c ++++ xen-4.14.0-testing/tools/libxl/libxl_device.c @@ -1212,7 +1212,7 @@ static void device_hotplug(libxl__egc *e } @@ -126,11 +126,11 @@ rc = libxl__async_exec_start(aes); if (rc) goto out; -Index: xen-4.13.0-testing/tools/libxl/libxl_event.c +Index: xen-4.14.0-testing/tools/libxl/libxl_event.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_event.c -+++ xen-4.13.0-testing/tools/libxl/libxl_event.c -@@ -858,27 +858,29 @@ static void devstate_callback(libxl__egc +--- xen-4.14.0-testing.orig/tools/libxl/libxl_event.c ++++ xen-4.14.0-testing/tools/libxl/libxl_event.c +@@ -1033,27 +1033,29 @@ static void devstate_callback(libxl__egc { EGC_GC; libxl__ev_devstate *ds = CONTAINER_OF(xsw, *ds, w); @@ -167,7 +167,7 @@ return; } -@@ -904,6 +906,8 @@ int libxl__ev_devstate_wait(libxl__ao *a +@@ -1079,6 +1081,8 @@ int libxl__ev_devstate_wait(libxl__ao *a ds->w.path = state_path; ds->w.timeout_ms = milliseconds; ds->w.callback = devstate_callback; @@ -176,10 +176,10 @@ rc = libxl__xswait_start(gc, &ds->w); if (rc) goto out; -Index: xen-4.13.0-testing/tools/libxl/libxl_internal.c +Index: xen-4.14.0-testing/tools/libxl/libxl_internal.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.c -+++ xen-4.13.0-testing/tools/libxl/libxl_internal.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_internal.c ++++ xen-4.14.0-testing/tools/libxl/libxl_internal.c @@ -17,6 +17,97 @@ #include "libxl_internal.h" @@ -278,10 +278,10 @@ void libxl__alloc_failed(libxl_ctx *ctx, const char *func, size_t nmemb, size_t size) { #define M "libxl: FATAL ERROR: memory allocation failure" -Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.14.0-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.13.0-testing/tools/libxl/libxl_internal.h +--- xen-4.14.0-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.14.0-testing/tools/libxl/libxl_internal.h @@ -50,6 +50,7 @@ #include <sys/un.h> #include <sys/file.h> @@ -290,7 +290,7 @@ #include <xenevtchn.h> #include <xenstore.h> -@@ -1593,6 +1594,7 @@ struct libxl__xswait_state { +@@ -1615,6 +1616,7 @@ struct libxl__xswait_state { const char *what; /* for error msgs: noun phrase, what we're waiting for */ const char *path; int timeout_ms; /* as for poll(2) */ @@ -298,7 +298,7 @@ libxl__xswait_callback *callback; /* remaining fields are private to xswait */ libxl__ev_time time_ev; -@@ -2652,6 +2654,7 @@ struct libxl__async_exec_state { +@@ -2695,6 +2697,7 @@ struct libxl__async_exec_state { char **args; /* execution arguments */ char **env; /* execution environment */ @@ -306,7 +306,7 @@ /* private */ libxl__ev_time time; libxl__ev_child child; -@@ -4783,6 +4786,9 @@ _hidden int libxl__domain_pvcontrol(libx +@@ -4846,6 +4849,9 @@ int libxl__is_domid_recent(libxl__gc *gc #endif ++++++ libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.045091532 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.049091533 +0200 @@ -7,10 +7,10 @@ tools/libxl/libxlu_disk_l.l | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) -Index: xen-4.13.0-testing/docs/man/xl-disk-configuration.5.pod +Index: xen-4.14.0-testing/docs/man/xl-disk-configuration.5.pod =================================================================== ---- xen-4.13.0-testing.orig/docs/man/xl-disk-configuration.5.pod -+++ xen-4.13.0-testing/docs/man/xl-disk-configuration.5.pod +--- xen-4.14.0-testing.orig/docs/man/xl-disk-configuration.5.pod ++++ xen-4.14.0-testing/docs/man/xl-disk-configuration.5.pod @@ -344,6 +344,32 @@ can be used to disable "hole punching" f were intentionally created non-sparse to avoid fragmentation of the file. @@ -44,10 +44,10 @@ =back -Index: xen-4.13.0-testing/tools/libxl/libxl.h +Index: xen-4.14.0-testing/tools/libxl/libxl.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl.h -+++ xen-4.13.0-testing/tools/libxl/libxl.h +--- xen-4.14.0-testing.orig/tools/libxl/libxl.h ++++ xen-4.14.0-testing/tools/libxl/libxl.h @@ -439,6 +439,21 @@ #define LIBXL_HAVE_CREATEINFO_PASSTHROUGH 1 @@ -70,10 +70,10 @@ * libxl ABI compatibility * * The only guarantee which libxl makes regarding ABI compatibility -Index: xen-4.13.0-testing/tools/libxl/libxl_disk.c +Index: xen-4.14.0-testing/tools/libxl/libxl_disk.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_disk.c -+++ xen-4.13.0-testing/tools/libxl/libxl_disk.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_disk.c ++++ xen-4.14.0-testing/tools/libxl/libxl_disk.c @@ -386,6 +386,8 @@ static void device_disk_add(libxl__egc * flexarray_append_pair(back, "discard-enable", libxl_defbool_val(disk->discard_enable) ? @@ -83,11 +83,11 @@ flexarray_append(front, "backend-id"); flexarray_append(front, GCSPRINTF("%d", disk->backend_domid)); -Index: xen-4.13.0-testing/tools/libxl/libxl_dm.c +Index: xen-4.14.0-testing/tools/libxl/libxl_dm.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_dm.c -+++ xen-4.13.0-testing/tools/libxl/libxl_dm.c -@@ -984,14 +984,27 @@ enum { +--- xen-4.14.0-testing.orig/tools/libxl/libxl_dm.c ++++ xen-4.14.0-testing/tools/libxl/libxl_dm.c +@@ -1004,14 +1004,27 @@ enum { LIBXL__COLO_SECONDARY, }; @@ -117,7 +117,7 @@ const char *exportname = disk->colo_export; const char *active_disk = disk->active_disk; const char *hidden_disk = disk->hidden_disk; -@@ -1050,8 +1063,8 @@ static char *qemu_disk_ide_drive_string( +@@ -1070,8 +1083,8 @@ static char *qemu_disk_ide_drive_string( switch (colo_mode) { case LIBXL__COLO_NONE: drive = GCSPRINTF @@ -128,7 +128,7 @@ break; case LIBXL__COLO_PRIMARY: /* -@@ -1064,13 +1077,14 @@ static char *qemu_disk_ide_drive_string( +@@ -1084,13 +1097,14 @@ static char *qemu_disk_ide_drive_string( * vote-threshold=1 */ drive = GCSPRINTF( @@ -145,7 +145,7 @@ break; case LIBXL__COLO_SECONDARY: /* -@@ -1084,7 +1098,7 @@ static char *qemu_disk_ide_drive_string( +@@ -1104,7 +1118,7 @@ static char *qemu_disk_ide_drive_string( * file.backing.backing=exportname, */ drive = GCSPRINTF( @@ -154,7 +154,7 @@ "driver=replication," "mode=secondary," "top-id=top-colo," -@@ -1093,7 +1107,8 @@ static char *qemu_disk_ide_drive_string( +@@ -1113,7 +1127,8 @@ static char *qemu_disk_ide_drive_string( "file.backing.driver=qcow2," "file.backing.file.filename=%s," "file.backing.backing=%s", @@ -164,7 +164,7 @@ break; default: abort(); -@@ -1881,8 +1896,8 @@ static int libxl__build_device_model_arg +@@ -1954,8 +1969,8 @@ static int libxl__build_device_model_arg return ERROR_INVAL; } flexarray_vappend(dm_args, "-drive", @@ -175,10 +175,10 @@ "-device", GCSPRINTF("ide-hd,bus=ahci0.%d,unit=0,drive=ahcidisk-%d", disk, disk), NULL); continue; -Index: xen-4.13.0-testing/tools/libxl/libxlu_disk.c +Index: xen-4.14.0-testing/tools/libxl/libxlu_disk.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk.c -+++ xen-4.13.0-testing/tools/libxl/libxlu_disk.c +--- xen-4.14.0-testing.orig/tools/libxl/libxlu_disk.c ++++ xen-4.14.0-testing/tools/libxl/libxlu_disk.c @@ -79,6 +79,8 @@ int xlu_disk_parse(XLU_Config *cfg, if (!disk->pdev_path || !strcmp(disk->pdev_path, "")) disk->format = LIBXL_DISK_FORMAT_EMPTY; @@ -188,10 +188,10 @@ if (!disk->vdev) { xlu__disk_err(&dpc,0, "no vdev specified"); -Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_i.h +Index: xen-4.14.0-testing/tools/libxl/libxlu_disk_i.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_i.h -+++ xen-4.13.0-testing/tools/libxl/libxlu_disk_i.h +--- xen-4.14.0-testing.orig/tools/libxl/libxlu_disk_i.h ++++ xen-4.14.0-testing/tools/libxl/libxlu_disk_i.h @@ -10,7 +10,7 @@ typedef struct { void *scanner; YY_BUFFER_STATE buf; @@ -201,11 +201,11 @@ const char *spec; } DiskParseContext; -Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l +Index: xen-4.14.0-testing/tools/libxl/libxlu_disk_l.l =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_l.l -+++ xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l -@@ -196,6 +196,7 @@ colo-port=[^,]*,? { STRIP(','); setcolop +--- xen-4.14.0-testing.orig/tools/libxl/libxlu_disk_l.l ++++ xen-4.14.0-testing/tools/libxl/libxlu_disk_l.l +@@ -207,6 +207,7 @@ colo-port=[^,]*,? { STRIP(','); setcolop colo-export=[^,]*,? { STRIP(','); SAVESTRING("colo-export", colo_export, FROMEQUALS); } active-disk=[^,]*,? { STRIP(','); SAVESTRING("active-disk", active_disk, FROMEQUALS); } hidden-disk=[^,]*,? { STRIP(','); SAVESTRING("hidden-disk", hidden_disk, FROMEQUALS); } ++++++ libxl.helper_done-crash.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.065091537 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.065091537 +0200 @@ -35,11 +35,11 @@ tools/libxl/libxl_save_callout.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/tools/libxl/libxl_save_callout.c b/tools/libxl/libxl_save_callout.c -index 6452d70036..89a2f6ecf0 100644 ---- a/tools/libxl/libxl_save_callout.c -+++ b/tools/libxl/libxl_save_callout.c -@@ -368,8 +368,9 @@ static void helper_done(libxl__egc *egc, libxl__save_helper_state *shs) +Index: xen-4.14.0-testing/tools/libxl/libxl_save_callout.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxl/libxl_save_callout.c ++++ xen-4.14.0-testing/tools/libxl/libxl_save_callout.c +@@ -366,8 +366,9 @@ static void helper_done(libxl__egc *egc, assert(!libxl__save_helper_inuse(shs)); shs->egc = egc; ++++++ libxl.libxl__domain_pvcontrol.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.081091540 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.085091541 +0200 @@ -11,13 +11,13 @@ tools/libxl/libxl_domain.c | 3 +++ 1 file changed, 3 insertions(+) -Index: xen-4.13.1-testing/tools/libxl/libxl_domain.c +Index: xen-4.14.0-testing/tools/libxl/libxl_domain.c =================================================================== ---- xen-4.13.1-testing.orig/tools/libxl/libxl_domain.c -+++ xen-4.13.1-testing/tools/libxl/libxl_domain.c -@@ -795,6 +795,9 @@ int libxl__domain_pvcontrol(libxl__egc * - if (rc < 0) - return rc; +--- xen-4.14.0-testing.orig/tools/libxl/libxl_domain.c ++++ xen-4.14.0-testing/tools/libxl/libxl_domain.c +@@ -800,6 +800,9 @@ int libxl__domain_pvcontrol(libxl__egc * + if (!rc) + return ERROR_NOPARAVIRT; + if (!rc) + return ERROR_NOPARAVIRT; ++++++ libxl.max_event_channels.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.097091544 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.101091545 +0200 @@ -3,9 +3,11 @@ 1023 is too low for a three digit value of vcpus it is difficult to make the value depend on the number of vcpus adding devices at runtime also needs event channels ---- a/tools/libxl/libxl_create.c -+++ b/tools/libxl/libxl_create.c -@@ -224,7 +224,7 @@ int libxl__domain_build_info_setdefault( +Index: xen-4.14.0-testing/tools/libxl/libxl_create.c +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxl/libxl_create.c ++++ xen-4.14.0-testing/tools/libxl/libxl_create.c +@@ -262,7 +262,7 @@ int libxl__domain_build_info_setdefault( b_info->iomem[i].gfn = b_info->iomem[i].start; if (!b_info->event_channels) ++++++ libxl.pvscsi.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.117091548 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.117091548 +0200 @@ -34,11 +34,11 @@ tools/libxl/xl_cmdtable.c | 15 16 files changed, 2326 insertions(+), 4 deletions(-) -Index: xen-4.13.0-testing/docs/man/xl.cfg.5.pod.in +Index: xen-4.14.0-testing/docs/man/xl.cfg.5.pod.in =================================================================== ---- xen-4.13.0-testing.orig/docs/man/xl.cfg.5.pod.in -+++ xen-4.13.0-testing/docs/man/xl.cfg.5.pod.in -@@ -756,6 +756,62 @@ frontend to backend. It can be used as a +--- xen-4.14.0-testing.orig/docs/man/xl.cfg.5.pod.in ++++ xen-4.14.0-testing/docs/man/xl.cfg.5.pod.in +@@ -769,6 +769,62 @@ frontend to backend. It can be used as a For more information about the protocol, see https://xenbits.xenproject.org/docs/unstable/misc/pvcalls.html. @@ -101,11 +101,11 @@ =item B<vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]> Specifies the paravirtual framebuffer devices which should be supplied -Index: xen-4.13.0-testing/docs/man/xl.1.pod.in +Index: xen-4.14.0-testing/docs/man/xl.1.pod.in =================================================================== ---- xen-4.13.0-testing.orig/docs/man/xl.1.pod.in -+++ xen-4.13.0-testing/docs/man/xl.1.pod.in -@@ -1575,6 +1575,24 @@ List virtual network interfaces for a do +--- xen-4.14.0-testing.orig/docs/man/xl.1.pod.in ++++ xen-4.14.0-testing/docs/man/xl.1.pod.in +@@ -1591,6 +1591,24 @@ List virtual network interfaces for a do =back @@ -130,11 +130,11 @@ =head1 PCI PASS-THROUGH =over 4 -Index: xen-4.13.0-testing/tools/libxl/Makefile +Index: xen-4.14.0-testing/tools/libxl/Makefile =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/Makefile -+++ xen-4.13.0-testing/tools/libxl/Makefile -@@ -127,6 +127,7 @@ endif +--- xen-4.14.0-testing.orig/tools/libxl/Makefile ++++ xen-4.14.0-testing/tools/libxl/Makefile +@@ -131,6 +131,7 @@ endif LIBXL_LIBS += -lyajl LIBXL_OBJS = flexarray.o libxl.o libxl_create.o libxl_dm.o libxl_pci.o \ @@ -142,7 +142,7 @@ libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o \ libxl_internal.o libxl_utils.o libxl_uuid.o \ libxl_json.o libxl_aoutils.o libxl_numa.o libxl_vnuma.o \ -@@ -173,6 +174,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h +@@ -177,6 +178,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \ @@ -150,10 +150,10 @@ libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h -Index: xen-4.13.0-testing/tools/libxl/libxl.h +Index: xen-4.14.0-testing/tools/libxl/libxl.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl.h -+++ xen-4.13.0-testing/tools/libxl/libxl.h +--- xen-4.14.0-testing.orig/tools/libxl/libxl.h ++++ xen-4.14.0-testing/tools/libxl/libxl.h @@ -1134,6 +1134,13 @@ void libxl_mac_copy(libxl_ctx *ctx, libx #define LIBXL_HAVE_PCITOPOLOGY 1 @@ -168,7 +168,7 @@ * LIBXL_HAVE_SOCKET_BITMAP * * If this is defined, then libxl_socket_bitmap_alloc and -@@ -2150,6 +2157,41 @@ int libxl_device_channel_getinfo(libxl_c +@@ -2170,6 +2177,41 @@ int libxl_device_channel_getinfo(libxl_c const libxl_device_channel *channel, libxl_channelinfo *channelinfo); @@ -210,11 +210,11 @@ /* Virtual TPMs */ int libxl_device_vtpm_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vtpm *vtpm, const libxl_asyncop_how *ao_how) -Index: xen-4.13.0-testing/tools/libxl/libxl_create.c +Index: xen-4.14.0-testing/tools/libxl/libxl_create.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_create.c -+++ xen-4.13.0-testing/tools/libxl/libxl_create.c -@@ -1655,6 +1655,7 @@ const libxl__device_type *device_type_tb +--- xen-4.14.0-testing.orig/tools/libxl/libxl_create.c ++++ xen-4.14.0-testing/tools/libxl/libxl_create.c +@@ -1811,6 +1811,7 @@ const libxl__device_type *device_type_tb &libxl__disk_devtype, &libxl__nic_devtype, &libxl__vtpm_devtype, @@ -222,11 +222,11 @@ &libxl__usbctrl_devtype, &libxl__usbdev_devtype, &libxl__pcidev_devtype, -Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.14.0-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.13.0-testing/tools/libxl/libxl_internal.h -@@ -3936,6 +3936,7 @@ extern const libxl__device_type libxl__v +--- xen-4.14.0-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.14.0-testing/tools/libxl/libxl_internal.h +@@ -3981,6 +3981,7 @@ extern const libxl__device_type libxl__v extern const libxl__device_type libxl__disk_devtype; extern const libxl__device_type libxl__nic_devtype; extern const libxl__device_type libxl__vtpm_devtype; @@ -234,11 +234,11 @@ extern const libxl__device_type libxl__usbctrl_devtype; extern const libxl__device_type libxl__usbdev_devtype; extern const libxl__device_type libxl__pcidev_devtype; -Index: xen-4.13.0-testing/tools/libxl/libxl_types.idl +Index: xen-4.14.0-testing/tools/libxl/libxl_types.idl =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_types.idl -+++ xen-4.13.0-testing/tools/libxl/libxl_types.idl -@@ -929,6 +929,43 @@ libxl_device_vsnd = Struct("device_vsnd" +--- xen-4.14.0-testing.orig/tools/libxl/libxl_types.idl ++++ xen-4.14.0-testing/tools/libxl/libxl_types.idl +@@ -934,6 +934,43 @@ libxl_device_vsnd = Struct("device_vsnd" ("pcms", Array(libxl_vsnd_pcm, "num_vsnd_pcms")) ]) @@ -282,7 +282,7 @@ libxl_domain_config = Struct("domain_config", [ ("c_info", libxl_domain_create_info), ("b_info", libxl_domain_build_info), -@@ -940,6 +977,7 @@ libxl_domain_config = Struct("domain_con +@@ -945,6 +982,7 @@ libxl_domain_config = Struct("domain_con ("dtdevs", Array(libxl_device_dtdev, "num_dtdevs")), ("vfbs", Array(libxl_device_vfb, "num_vfbs")), ("vkbs", Array(libxl_device_vkb, "num_vkbs")), @@ -290,7 +290,7 @@ ("vtpms", Array(libxl_device_vtpm, "num_vtpms")), ("p9s", Array(libxl_device_p9, "num_p9s")), ("pvcallsifs", Array(libxl_device_pvcallsif, "num_pvcallsifs")), -@@ -981,6 +1019,21 @@ libxl_nicinfo = Struct("nicinfo", [ +@@ -986,6 +1024,21 @@ libxl_nicinfo = Struct("nicinfo", [ ("rref_rx", integer), ], dir=DIR_OUT) @@ -312,10 +312,10 @@ libxl_vtpminfo = Struct("vtpminfo", [ ("backend", string), ("backend_id", uint32), -Index: xen-4.13.0-testing/tools/libxl/libxl_types_internal.idl +Index: xen-4.14.0-testing/tools/libxl/libxl_types_internal.idl =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_types_internal.idl -+++ xen-4.13.0-testing/tools/libxl/libxl_types_internal.idl +--- xen-4.14.0-testing.orig/tools/libxl/libxl_types_internal.idl ++++ xen-4.14.0-testing/tools/libxl/libxl_types_internal.idl @@ -32,6 +32,7 @@ libxl__device_kind = Enumeration("device (14, "PVCALLS"), (15, "VSND"), @@ -324,10 +324,10 @@ ]) libxl__console_backend = Enumeration("console_backend", [ -Index: xen-4.13.0-testing/tools/libxl/libxl_vscsi.c +Index: xen-4.14.0-testing/tools/libxl/libxl_vscsi.c =================================================================== --- /dev/null -+++ xen-4.13.0-testing/tools/libxl/libxl_vscsi.c ++++ xen-4.14.0-testing/tools/libxl/libxl_vscsi.c @@ -0,0 +1,1185 @@ +/* + * Copyright (C) 2016 SUSE Linux GmbH @@ -1153,7 +1153,7 @@ + uint32_t domid = aodev->dev->domid; + libxl_device_vscsictrl vscsictrl_saved; + libxl_domain_config d_config; -+ libxl__domain_userdata_lock *lock = NULL; ++ libxl__flock *lock = NULL; + + libxl_domain_config_init(&d_config); + libxl_device_vscsictrl_init(&vscsictrl_saved); @@ -1181,7 +1181,7 @@ + fn(egc, aodev, &vscsictrl_saved, &d_config); + +out: -+ if (lock) libxl__unlock_domain_userdata(lock); ++ if (lock) libxl__unlock_file(lock); + libxl_device_vscsictrl_dispose(&vscsictrl_saved); + libxl_domain_config_dispose(&d_config); + if (rc) { @@ -1514,10 +1514,10 @@ + * indent-tabs-mode: nil + * End: + */ -Index: xen-4.13.0-testing/tools/libxl/libxlu_vscsi.c +Index: xen-4.14.0-testing/tools/libxl/libxlu_vscsi.c =================================================================== --- /dev/null -+++ xen-4.13.0-testing/tools/libxl/libxlu_vscsi.c ++++ xen-4.14.0-testing/tools/libxl/libxlu_vscsi.c @@ -0,0 +1,668 @@ +/* + * libxlu_vscsi.c - xl configuration file parsing: setup and helper functions @@ -2187,10 +2187,10 @@ + return ERROR_INVAL; +} +#endif -Index: xen-4.13.0-testing/tools/libxl/libxlutil.h +Index: xen-4.14.0-testing/tools/libxl/libxlutil.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlutil.h -+++ xen-4.13.0-testing/tools/libxl/libxlutil.h +--- xen-4.14.0-testing.orig/tools/libxl/libxlutil.h ++++ xen-4.14.0-testing/tools/libxl/libxlutil.h @@ -125,6 +125,25 @@ int xlu_rdm_parse(XLU_Config *cfg, libxl int xlu_vif_parse_rate(XLU_Config *cfg, const char *rate, libxl_device_nic *nic); @@ -2217,10 +2217,10 @@ #endif /* LIBXLUTIL_H */ /* -Index: xen-4.13.0-testing/tools/xl/Makefile +Index: xen-4.14.0-testing/tools/xl/Makefile =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/Makefile -+++ xen-4.13.0-testing/tools/xl/Makefile +--- xen-4.14.0-testing.orig/tools/xl/Makefile ++++ xen-4.14.0-testing/tools/xl/Makefile @@ -18,7 +18,7 @@ CFLAGS_XL += -Wshadow XL_OBJS-$(CONFIG_X86) = xl_psr.o XL_OBJS = xl.o xl_cmdtable.o xl_sxp.o xl_utils.o $(XL_OBJS-y) @@ -2230,11 +2230,11 @@ XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o XL_OBJS += xl_info.o xl_console.o xl_misc.o XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o -Index: xen-4.13.0-testing/tools/xl/xl.h +Index: xen-4.14.0-testing/tools/xl/xl.h =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/xl.h -+++ xen-4.13.0-testing/tools/xl/xl.h -@@ -165,6 +165,9 @@ int main_channellist(int argc, char **ar +--- xen-4.14.0-testing.orig/tools/xl/xl.h ++++ xen-4.14.0-testing/tools/xl/xl.h +@@ -166,6 +166,9 @@ int main_channellist(int argc, char **ar int main_blockattach(int argc, char **argv); int main_blocklist(int argc, char **argv); int main_blockdetach(int argc, char **argv); @@ -2244,10 +2244,10 @@ int main_vtpmattach(int argc, char **argv); int main_vtpmlist(int argc, char **argv); int main_vtpmdetach(int argc, char **argv); -Index: xen-4.13.0-testing/tools/xl/xl_parse.c +Index: xen-4.14.0-testing/tools/xl/xl_parse.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/xl_parse.c -+++ xen-4.13.0-testing/tools/xl/xl_parse.c +--- xen-4.14.0-testing.orig/tools/xl/xl_parse.c ++++ xen-4.14.0-testing/tools/xl/xl_parse.c @@ -1212,7 +1212,8 @@ void parse_config_data(const char *confi long l, vcpus = 0; XLU_Config *config; @@ -2276,10 +2276,10 @@ if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) { d_config->num_vtpms = 0; d_config->vtpms = NULL; -Index: xen-4.13.0-testing/tools/xl/xl_vscsi.c +Index: xen-4.14.0-testing/tools/xl/xl_vscsi.c =================================================================== --- /dev/null -+++ xen-4.13.0-testing/tools/xl/xl_vscsi.c ++++ xen-4.14.0-testing/tools/xl/xl_vscsi.c @@ -0,0 +1,229 @@ +/* + * Copyright 2009-2017 Citrix Ltd and other contributors @@ -2510,11 +2510,11 @@ + return !!rc; +} + -Index: xen-4.13.0-testing/tools/xl/xl_cmdtable.c +Index: xen-4.14.0-testing/tools/xl/xl_cmdtable.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/xl_cmdtable.c -+++ xen-4.13.0-testing/tools/xl/xl_cmdtable.c -@@ -368,6 +368,21 @@ struct cmd_spec cmd_table[] = { +--- xen-4.14.0-testing.orig/tools/xl/xl_cmdtable.c ++++ xen-4.14.0-testing/tools/xl/xl_cmdtable.c +@@ -370,6 +370,21 @@ struct cmd_spec cmd_table[] = { "Destroy a domain's virtual block device", "<Domain> <DevId>", }, ++++++ libxl.set-migration-constraints-from-cmdline.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.137091553 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.137091553 +0200 @@ -89,13 +89,13 @@ tools/libxl/xl_cmdtable.c | 23 ++++++++++++++-------- 13 files changed, 156 insertions(+), 28 deletions(-) -Index: xen-4.13.0-testing/docs/man/xl.1.pod.in +Index: xen-4.14.0-testing/docs/man/xl.1.pod.in =================================================================== ---- xen-4.13.0-testing.orig/docs/man/xl.1.pod.in -+++ xen-4.13.0-testing/docs/man/xl.1.pod.in -@@ -490,6 +490,26 @@ Display huge (!) amount of debug informa - - Leave the domain on the receive side paused after migration. +--- xen-4.14.0-testing.orig/docs/man/xl.1.pod.in ++++ xen-4.14.0-testing/docs/man/xl.1.pod.in +@@ -497,6 +497,26 @@ such that it will be identical on the de + configuration is overridden using the B<-C> option. Note that it is not + possible to use this option for a 'localhost' migration. +=item B<--max_iters> I<number> + @@ -120,64 +120,63 @@ =back =item B<remus> [I<OPTIONS>] I<domain-id> I<host> -Index: xen-4.13.0-testing/tools/libxc/include/xenguest.h +Index: xen-4.14.0-testing/tools/libxc/include/xenguest.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxc/include/xenguest.h -+++ xen-4.13.0-testing/tools/libxc/include/xenguest.h -@@ -29,6 +29,7 @@ - #define XCFLAGS_HVM (1 << 2) - #define XCFLAGS_STDVGA (1 << 3) - #define XCFLAGS_CHECKPOINT_COMPRESS (1 << 4) -+#define XCFLAGS_DOMSAVE_ABORT_IF_BUSY (1 << 5) +--- xen-4.14.0-testing.orig/tools/libxc/include/xenguest.h ++++ xen-4.14.0-testing/tools/libxc/include/xenguest.h +@@ -26,6 +26,7 @@ + + #define XCFLAGS_LIVE (1 << 0) + #define XCFLAGS_DEBUG (1 << 1) ++#define XCFLAGS_DOMSAVE_ABORT_IF_BUSY (1 << 2) #define X86_64_B_SIZE 64 #define X86_32_B_SIZE 32 -@@ -131,10 +132,20 @@ typedef enum { - * doesn't use checkpointing +@@ -133,9 +134,19 @@ typedef enum { + * the destination side. * @return 0 on success, -1 on failure */ +int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters, + uint32_t max_factor, uint32_t flags /* XCFLAGS_xxx */, + uint32_t min_remaining, -+ struct save_callbacks* callbacks, int hvm, -+ xc_migration_stream_t stream_type, int recv_fd); ++ struct save_callbacks* callbacks, ++ xc_stream_type_t stream_type, int recv_fd); +static inline int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, - uint32_t flags /* XCFLAGS_xxx */, - struct save_callbacks* callbacks, int hvm, -- xc_migration_stream_t stream_type, int recv_fd); -+ xc_migration_stream_t stream_type, int recv_fd) + uint32_t flags, struct save_callbacks *callbacks, +- xc_stream_type_t stream_type, int recv_fd); ++ xc_stream_type_t stream_type, int recv_fd) +{ -+ return xc_domain_save_suse(xch,io_fd,dom,0,0,flags,0,callbacks,hvm,stream_type,recv_fd); ++ return xc_domain_save_suse(xch,io_fd,dom,0,0,flags,0,callbacks,stream_type,recv_fd); +} + /* callbacks provided by xc_domain_restore */ struct restore_callbacks { -Index: xen-4.13.0-testing/tools/libxc/xc_nomigrate.c +Index: xen-4.14.0-testing/tools/libxc/xc_nomigrate.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxc/xc_nomigrate.c -+++ xen-4.13.0-testing/tools/libxc/xc_nomigrate.c +--- xen-4.14.0-testing.orig/tools/libxc/xc_nomigrate.c ++++ xen-4.14.0-testing/tools/libxc/xc_nomigrate.c @@ -20,9 +20,11 @@ #include <xenctrl.h> #include <xenguest.h> -int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t flags, -- struct save_callbacks* callbacks, int hvm, -- xc_migration_stream_t stream_type, int recv_fd) +- struct save_callbacks *callbacks, +- xc_stream_type_t stream_type, int recv_fd) +int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters, + uint32_t max_factor, uint32_t flags, + uint32_t min_remaining, -+ struct save_callbacks* callbacks, int hvm, -+ xc_migration_stream_t stream_type, int recv_fd) ++ struct save_callbacks* callbacks, ++ xc_stream_type_t stream_type, int recv_fd) { errno = ENOSYS; return -1; -Index: xen-4.13.0-testing/tools/libxc/xc_sr_save.c +Index: xen-4.14.0-testing/tools/libxc/xc_sr_save.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxc/xc_sr_save.c -+++ xen-4.13.0-testing/tools/libxc/xc_sr_save.c -@@ -525,6 +525,11 @@ static int send_memory_live(struct xc_sr +--- xen-4.14.0-testing.orig/tools/libxc/xc_sr_save.c ++++ xen-4.14.0-testing/tools/libxc/xc_sr_save.c +@@ -533,6 +533,11 @@ static int send_memory_live(struct xc_sr policy_decision = precopy_policy(*policy_stats, data); x++; @@ -189,7 +188,7 @@ if ( stats.dirty_count > 0 && policy_decision != XGS_POLICY_ABORT ) { rc = update_progress_string(ctx, &progress_str); -@@ -545,6 +550,11 @@ static int send_memory_live(struct xc_sr +@@ -553,6 +558,11 @@ static int send_memory_live(struct xc_sr policy_decision = precopy_policy(*policy_stats, data); @@ -199,15 +198,15 @@ + break; + } if ( policy_decision != XGS_POLICY_CONTINUE_PRECOPY ) - break; + break; -@@ -965,9 +975,71 @@ static int save(struct xc_sr_context *ct +@@ -984,9 +994,71 @@ static int save(struct xc_sr_context *ct return rc; }; -int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, -- uint32_t flags, struct save_callbacks* callbacks, -- int hvm, xc_migration_stream_t stream_type, int recv_fd) +- uint32_t flags, struct save_callbacks *callbacks, +- xc_stream_type_t stream_type, int recv_fd) +static struct suse_flags { + struct xc_sr_context *ctx; + unsigned long cnt; @@ -271,13 +270,13 @@ +int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom, + uint32_t max_iters, uint32_t max_factor, uint32_t flags, + uint32_t min_remaining, -+ struct save_callbacks* callbacks, int hvm, -+ xc_migration_stream_t stream_type, int recv_fd) ++ struct save_callbacks* callbacks, ++ xc_stream_type_t stream_type, int recv_fd) { - struct xc_sr_context ctx = - { -@@ -982,6 +1054,19 @@ int xc_domain_save(xc_interface *xch, in - ctx.save.checkpointed = stream_type; + struct xc_sr_context ctx = { + .xch = xch, +@@ -1000,6 +1072,19 @@ int xc_domain_save(xc_interface *xch, in + ctx.save.debug = !!(flags & XCFLAGS_DEBUG); ctx.save.recv_fd = recv_fd; + if ( callbacks->precopy_policy ) @@ -293,14 +292,14 @@ + suse_flags.min_remaining = min_remaining ? : 50; + suse_flags.abort_if_busy = !!(flags & XCFLAGS_DOMSAVE_ABORT_IF_BUSY); + - /* If altering migration_stream update this assert too. */ - assert(stream_type == XC_MIG_STREAM_NONE || - stream_type == XC_MIG_STREAM_REMUS || -Index: xen-4.13.0-testing/tools/libxl/libxl.h -=================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl.h -+++ xen-4.13.0-testing/tools/libxl/libxl.h -@@ -1647,8 +1647,23 @@ int libxl_domain_suspend(libxl_ctx *ctx, + if ( xc_domain_getinfo(xch, dom, 1, &ctx.dominfo) != 1 ) + { + PERROR("Failed to get domain info"); +Index: xen-4.14.0-testing/tools/libxl/libxl.h +=================================================================== +--- xen-4.14.0-testing.orig/tools/libxl/libxl.h ++++ xen-4.14.0-testing/tools/libxl/libxl.h +@@ -1667,8 +1667,23 @@ int libxl_domain_suspend(libxl_ctx *ctx, int flags, /* LIBXL_SUSPEND_* */ const libxl_asyncop_how *ao_how) LIBXL_EXTERNAL_CALLERS_ONLY; @@ -324,23 +323,25 @@ /* * Only suspend domain, do not save its state to file, do not destroy it. -Index: xen-4.13.0-testing/tools/libxl/libxl_dom_save.c +Index: xen-4.14.0-testing/tools/libxl/libxl_dom_save.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_dom_save.c -+++ xen-4.13.0-testing/tools/libxl/libxl_dom_save.c -@@ -423,6 +423,7 @@ void libxl__domain_save(libxl__egc *egc, +--- xen-4.14.0-testing.orig/tools/libxl/libxl_dom_save.c ++++ xen-4.14.0-testing/tools/libxl/libxl_dom_save.c +@@ -409,7 +409,8 @@ void libxl__domain_save(libxl__egc *egc, + if (rc) goto out; dss->xcflags = (live ? XCFLAGS_LIVE : 0) - | (debug ? XCFLAGS_DEBUG : 0) -+ | (dss->xlflags & LIBXL_SUSPEND_ABORT_IF_BUSY ? XCFLAGS_DOMSAVE_ABORT_IF_BUSY : 0) - | (dss->hvm ? XCFLAGS_HVM : 0); +- | (debug ? XCFLAGS_DEBUG : 0); ++ | (debug ? XCFLAGS_DEBUG : 0) ++ | (dss->xlflags & LIBXL_SUSPEND_ABORT_IF_BUSY ? XCFLAGS_DOMSAVE_ABORT_IF_BUSY : 0); /* Disallow saving a guest with vNUMA configured because migration -Index: xen-4.13.0-testing/tools/libxl/libxl_domain.c + * stream does not preserve node information. +Index: xen-4.14.0-testing/tools/libxl/libxl_domain.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_domain.c -+++ xen-4.13.0-testing/tools/libxl/libxl_domain.c -@@ -503,8 +503,9 @@ static void domain_suspend_cb(libxl__egc +--- xen-4.14.0-testing.orig/tools/libxl/libxl_domain.c ++++ xen-4.14.0-testing/tools/libxl/libxl_domain.c +@@ -505,8 +505,9 @@ static void domain_suspend_cb(libxl__egc } @@ -352,7 +353,7 @@ { AO_CREATE(ctx, domid, ao_how); int rc; -@@ -524,9 +525,15 @@ int libxl_domain_suspend(libxl_ctx *ctx, +@@ -526,9 +527,15 @@ int libxl_domain_suspend(libxl_ctx *ctx, dss->domid = domid; dss->fd = fd; dss->type = type; @@ -370,7 +371,7 @@ rc = libxl__fd_flags_modify_save(gc, dss->fd, ~(O_NONBLOCK|O_NDELAY), 0, -@@ -574,6 +581,20 @@ int libxl_domain_suspend_only(libxl_ctx +@@ -576,6 +583,20 @@ int libxl_domain_suspend_only(libxl_ctx return AO_CREATE_FAIL(rc); } @@ -391,14 +392,14 @@ int libxl_domain_pause(libxl_ctx *ctx, uint32_t domid, const libxl_asyncop_how *ao_how) { -Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.14.0-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.13.0-testing/tools/libxl/libxl_internal.h -@@ -3596,6 +3596,10 @@ struct libxl__domain_save_state { +--- xen-4.14.0-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.14.0-testing/tools/libxl/libxl_internal.h +@@ -3641,6 +3641,10 @@ struct libxl__domain_save_state { + const libxl_domain_remus_info *remus; /* private */ int rc; - int hvm; + int max_iters; + int max_factor; + int min_remaining; @@ -406,26 +407,26 @@ int xcflags; libxl__domain_suspend_state dsps; union { -Index: xen-4.13.0-testing/tools/libxl/libxl_save_callout.c +Index: xen-4.14.0-testing/tools/libxl/libxl_save_callout.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_save_callout.c -+++ xen-4.13.0-testing/tools/libxl/libxl_save_callout.c -@@ -89,7 +89,9 @@ void libxl__xc_domain_save(libxl__egc *e +--- xen-4.14.0-testing.orig/tools/libxl/libxl_save_callout.c ++++ xen-4.14.0-testing/tools/libxl/libxl_save_callout.c +@@ -87,7 +87,9 @@ void libxl__xc_domain_save(libxl__egc *e libxl__srm_callout_enumcallbacks_save(&shs->callbacks.save.a); const unsigned long argnums[] = { -- dss->domid, dss->xcflags, dss->hvm, cbflags, +- dss->domid, dss->xcflags, cbflags, + dss->domid, + dss->max_iters, dss->max_factor, dss->min_remaining, -+ dss->xcflags, dss->hvm, cbflags, ++ dss->xcflags, cbflags, dss->checkpointed_stream, }; -Index: xen-4.13.0-testing/tools/libxl/libxl_save_helper.c +Index: xen-4.14.0-testing/tools/libxl/libxl_save_helper.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_save_helper.c -+++ xen-4.13.0-testing/tools/libxl/libxl_save_helper.c -@@ -251,6 +251,9 @@ int main(int argc, char **argv) +--- xen-4.14.0-testing.orig/tools/libxl/libxl_save_helper.c ++++ xen-4.14.0-testing/tools/libxl/libxl_save_helper.c +@@ -248,6 +248,9 @@ int main(int argc, char **argv) io_fd = atoi(NEXTARG); recv_fd = atoi(NEXTARG); uint32_t dom = strtoul(NEXTARG,0,10); @@ -433,26 +434,25 @@ + uint32_t max_factor = strtoul(NEXTARG,0,10); + uint32_t min_remaining = strtoul(NEXTARG,0,10); uint32_t flags = strtoul(NEXTARG,0,10); - int hvm = atoi(NEXTARG); unsigned cbflags = strtoul(NEXTARG,0,10); -@@ -262,8 +265,10 @@ int main(int argc, char **argv) + xc_stream_type_t stream_type = strtoul(NEXTARG,0,10); +@@ -258,7 +261,10 @@ int main(int argc, char **argv) startup("save"); setup_signals(save_signal_handler); -- r = xc_domain_save(xch, io_fd, dom, flags, &helper_save_callbacks, -- hvm, stream_type, recv_fd); +- r = xc_domain_save(xch, io_fd, dom, flags, &cb, stream_type, recv_fd); + r = xc_domain_save_suse(xch, io_fd, dom, max_iters, max_factor, flags, + min_remaining, -+ &helper_save_callbacks, hvm, stream_type, ++ &cb, stream_type, + recv_fd); complete(r); } else if (!strcmp(mode,"--restore-domain")) { -Index: xen-4.13.0-testing/tools/xl/xl_cmdtable.c +Index: xen-4.14.0-testing/tools/xl/xl_cmdtable.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/xl_cmdtable.c -+++ xen-4.13.0-testing/tools/xl/xl_cmdtable.c -@@ -159,15 +159,22 @@ struct cmd_spec cmd_table[] = { +--- xen-4.14.0-testing.orig/tools/xl/xl_cmdtable.c ++++ xen-4.14.0-testing/tools/xl/xl_cmdtable.c +@@ -160,16 +160,23 @@ struct cmd_spec cmd_table[] = { &main_migrate, 0, 1, "Migrate a domain to another host", "[options] <Domain> <host>", @@ -464,7 +464,8 @@ - "-e Do not wait in the background (on <host>) for the death\n" - " of the domain.\n" - "--debug Print huge (!) amount of debug during the migration process.\n" -- "-p Do not unpause domain after migrating it." +- "-p Do not unpause domain after migrating it.\n" +- "-D Preserve the domain id" + "-h Print this help.\n" + "-C <config> Send <config> instead of config file from creation.\n" + "-s <sshcommand> Use <sshcommand> instead of ssh. String will be passed\n" @@ -474,6 +475,7 @@ + " of the domain.\n" + "--debug Print huge (!) amount of debug during the migration process.\n" + "-p Do not unpause domain after migrating it.\n" ++ "-D Preserve the domain id" + "\n" + "SUSE Linux specific options:\n" + "--max_iters <number> Number of iterations before final suspend (default: 30)\n" @@ -484,20 +486,20 @@ }, { "restore", &main_restore, 0, 1, -Index: xen-4.13.0-testing/tools/xl/xl_migrate.c +Index: xen-4.14.0-testing/tools/xl/xl_migrate.c =================================================================== ---- xen-4.13.0-testing.orig/tools/xl/xl_migrate.c -+++ xen-4.13.0-testing/tools/xl/xl_migrate.c -@@ -177,6 +177,8 @@ static void migrate_do_preamble(int send - } +--- xen-4.14.0-testing.orig/tools/xl/xl_migrate.c ++++ xen-4.14.0-testing/tools/xl/xl_migrate.c +@@ -178,6 +178,8 @@ static void migrate_do_preamble(int send - static void migrate_domain(uint32_t domid, const char *rune, int debug, + static void migrate_domain(uint32_t domid, int preserve_domid, + const char *rune, int debug, + int max_iters, int max_factor, + int min_remaining, int abort_if_busy, const char *override_config_file) { pid_t child = -1; -@@ -185,7 +187,13 @@ static void migrate_domain(uint32_t domi +@@ -186,7 +188,13 @@ static void migrate_domain(uint32_t domi char *away_domname; char rc_buf; uint8_t *config_data; @@ -510,9 +512,9 @@ + .min_remaining = min_remaining, + }; - save_domain_core_begin(domid, override_config_file, + save_domain_core_begin(domid, preserve_domid, override_config_file, &config_data, &config_len); -@@ -204,10 +212,12 @@ static void migrate_domain(uint32_t domi +@@ -205,10 +213,12 @@ static void migrate_domain(uint32_t domi xtl_stdiostream_adjust_flags(logger, XTL_STDIOSTREAM_HIDE_PROGRESS, 0); if (debug) @@ -528,27 +530,27 @@ " (rc=%d)\n", rc); if (rc == ERROR_GUEST_TIMEDOUT) goto failed_suspend; -@@ -537,13 +547,18 @@ int main_migrate(int argc, char **argv) - char *rune = NULL; +@@ -539,13 +549,18 @@ int main_migrate(int argc, char **argv) char *host; int opt, daemonize = 1, monitor = 1, debug = 0, pause_after_migration = 0; + int preserve_domid = 0; + int max_iters = 0, max_factor = 0, min_remaining = 0, abort_if_busy = 0; static struct option opts[] = { {"debug", 0, 0, 0x100}, -+ {"max_iters", 1, 0, 0x101}, -+ {"max_factor", 1, 0, 0x102}, -+ {"min_remaining", 1, 0, 0x103}, -+ {"abort_if_busy", 0, 0, 0x104}, ++ {"max_iters", 1, 0, 0x101}, ++ {"max_factor", 1, 0, 0x102}, ++ {"min_remaining", 1, 0, 0x103}, ++ {"abort_if_busy", 0, 0, 0x104}, {"live", 0, 0, 0x200}, COMMON_LONG_OPTS }; -- SWITCH_FOREACH_OPT(opt, "FC:s:ep", opts, "migrate", 2) { -+ SWITCH_FOREACH_OPT(opt, "FC:s:epM:m:A", opts, "migrate", 2) { +- SWITCH_FOREACH_OPT(opt, "FC:s:epD", opts, "migrate", 2) { ++ SWITCH_FOREACH_OPT(opt, "FC:s:epDM:m:A", opts, "migrate", 2) { case 'C': config_filename = optarg; break; -@@ -563,6 +578,18 @@ int main_migrate(int argc, char **argv) +@@ -568,6 +583,18 @@ int main_migrate(int argc, char **argv) case 0x100: /* --debug */ debug = 1; break; @@ -567,13 +569,13 @@ case 0x200: /* --live */ /* ignored for compatibility with xm */ break; -@@ -596,7 +623,8 @@ int main_migrate(int argc, char **argv) +@@ -601,7 +628,8 @@ int main_migrate(int argc, char **argv) pause_after_migration ? " -p" : ""); } -- migrate_domain(domid, rune, debug, config_filename); -+ migrate_domain(domid, rune, debug, max_iters, max_factor, min_remaining, -+ abort_if_busy, config_filename); +- migrate_domain(domid, preserve_domid, rune, debug, config_filename); ++ migrate_domain(domid, preserve_domid, rune, debug, max_iters, max_factor, min_remaining, ++ abort_if_busy, config_filename); return EXIT_SUCCESS; } ++++++ migration-python3-conversion.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.173091562 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.177091563 +0200 @@ -1,119 +1,67 @@ -Index: xen-4.10.0-testing/tools/python/xen/migration/legacy.py +Index: xen-4.14.0-testing/tools/python/xen/migration/legacy.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/legacy.py -+++ xen-4.10.0-testing/tools/python/xen/migration/legacy.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/legacy.py ++++ xen-4.14.0-testing/tools/python/xen/migration/legacy.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -Index: xen-4.10.0-testing/tools/python/xen/migration/libxc.py +Index: xen-4.14.0-testing/tools/python/xen/migration/libxc.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/libxc.py -+++ xen-4.10.0-testing/tools/python/xen/migration/libxc.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/libxc.py ++++ xen-4.14.0-testing/tools/python/xen/migration/libxc.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -@@ -87,23 +87,23 @@ rec_type_to_str = { - - # page_data - PAGE_DATA_FORMAT = "II" --PAGE_DATA_PFN_MASK = (long(1) << 52) - 1 --PAGE_DATA_PFN_RESZ_MASK = ((long(1) << 60) - 1) & ~((long(1) << 52) - 1) -+PAGE_DATA_PFN_MASK = (int(1) << 52) - 1 -+PAGE_DATA_PFN_RESZ_MASK = ((int(1) << 60) - 1) & ~((int(1) << 52) - 1) - - # flags from xen/public/domctl.h: XEN_DOMCTL_PFINFO_* shifted by 32 bits - PAGE_DATA_TYPE_SHIFT = 60 --PAGE_DATA_TYPE_LTABTYPE_MASK = (long(0x7) << PAGE_DATA_TYPE_SHIFT) --PAGE_DATA_TYPE_LTAB_MASK = (long(0xf) << PAGE_DATA_TYPE_SHIFT) --PAGE_DATA_TYPE_LPINTAB = (long(0x8) << PAGE_DATA_TYPE_SHIFT) # Pinned pagetable -- --PAGE_DATA_TYPE_NOTAB = (long(0x0) << PAGE_DATA_TYPE_SHIFT) # Regular page --PAGE_DATA_TYPE_L1TAB = (long(0x1) << PAGE_DATA_TYPE_SHIFT) # L1 pagetable --PAGE_DATA_TYPE_L2TAB = (long(0x2) << PAGE_DATA_TYPE_SHIFT) # L2 pagetable --PAGE_DATA_TYPE_L3TAB = (long(0x3) << PAGE_DATA_TYPE_SHIFT) # L3 pagetable --PAGE_DATA_TYPE_L4TAB = (long(0x4) << PAGE_DATA_TYPE_SHIFT) # L4 pagetable --PAGE_DATA_TYPE_BROKEN = (long(0xd) << PAGE_DATA_TYPE_SHIFT) # Broken --PAGE_DATA_TYPE_XALLOC = (long(0xe) << PAGE_DATA_TYPE_SHIFT) # Allocate-only --PAGE_DATA_TYPE_XTAB = (long(0xf) << PAGE_DATA_TYPE_SHIFT) # Invalid -+PAGE_DATA_TYPE_LTABTYPE_MASK = (int(0x7) << PAGE_DATA_TYPE_SHIFT) -+PAGE_DATA_TYPE_LTAB_MASK = (int(0xf) << PAGE_DATA_TYPE_SHIFT) -+PAGE_DATA_TYPE_LPINTAB = (int(0x8) << PAGE_DATA_TYPE_SHIFT) # Pinned pagetable -+ -+PAGE_DATA_TYPE_NOTAB = (int(0x0) << PAGE_DATA_TYPE_SHIFT) # Regular page -+PAGE_DATA_TYPE_L1TAB = (int(0x1) << PAGE_DATA_TYPE_SHIFT) # L1 pagetable -+PAGE_DATA_TYPE_L2TAB = (int(0x2) << PAGE_DATA_TYPE_SHIFT) # L2 pagetable -+PAGE_DATA_TYPE_L3TAB = (int(0x3) << PAGE_DATA_TYPE_SHIFT) # L3 pagetable -+PAGE_DATA_TYPE_L4TAB = (int(0x4) << PAGE_DATA_TYPE_SHIFT) # L4 pagetable -+PAGE_DATA_TYPE_BROKEN = (int(0xd) << PAGE_DATA_TYPE_SHIFT) # Broken -+PAGE_DATA_TYPE_XALLOC = (int(0xe) << PAGE_DATA_TYPE_SHIFT) # Allocate-only -+PAGE_DATA_TYPE_XTAB = (int(0xf) << PAGE_DATA_TYPE_SHIFT) # Invalid - - # x86_pv_info - X86_PV_INFO_FORMAT = "BBHI" -Index: xen-4.10.0-testing/tools/python/xen/migration/libxl.py +Index: xen-4.14.0-testing/tools/python/xen/migration/libxl.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/libxl.py -+++ xen-4.10.0-testing/tools/python/xen/migration/libxl.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/libxl.py ++++ xen-4.14.0-testing/tools/python/xen/migration/libxl.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -Index: xen-4.10.0-testing/tools/python/xen/migration/public.py +Index: xen-4.14.0-testing/tools/python/xen/migration/public.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/public.py -+++ xen-4.10.0-testing/tools/python/xen/migration/public.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/public.py ++++ xen-4.14.0-testing/tools/python/xen/migration/public.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -Index: xen-4.10.0-testing/tools/python/xen/migration/tests.py +Index: xen-4.14.0-testing/tools/python/xen/migration/tests.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/tests.py -+++ xen-4.10.0-testing/tools/python/xen/migration/tests.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/tests.py ++++ xen-4.14.0-testing/tools/python/xen/migration/tests.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -Index: xen-4.10.0-testing/tools/python/xen/migration/verify.py +Index: xen-4.14.0-testing/tools/python/xen/migration/verify.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/verify.py -+++ xen-4.10.0-testing/tools/python/xen/migration/verify.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/verify.py ++++ xen-4.14.0-testing/tools/python/xen/migration/verify.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- """ -@@ -7,11 +7,11 @@ Common verification infrastructure for v - - from struct import calcsize, unpack - --class StreamError(StandardError): -+class StreamError(Exception): - """Error with the stream""" - pass - --class RecordError(StandardError): -+class RecordError(Exception): - """Error with a record in the stream""" - pass - -Index: xen-4.10.0-testing/tools/python/xen/migration/xl.py +Index: xen-4.14.0-testing/tools/python/xen/migration/xl.py =================================================================== ---- xen-4.10.0-testing.orig/tools/python/xen/migration/xl.py -+++ xen-4.10.0-testing/tools/python/xen/migration/xl.py +--- xen-4.14.0-testing.orig/tools/python/xen/migration/xl.py ++++ xen-4.14.0-testing/tools/python/xen/migration/xl.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 ++++++ mini-os.tar.bz2 ++++++ ++++ 2074 lines of diff (skipped) ++++++ replace-obsolete-network-configuration-commands-in-s.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.573091655 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.577091656 +0200 @@ -17,10 +17,10 @@ .../i386-dm/qemu-ifup-Linux | 5 +++-- 9 files changed, 26 insertions(+), 26 deletions(-) -Index: xen-4.13.0-testing/README +Index: xen-4.14.0-testing/README =================================================================== ---- xen-4.13.0-testing.orig/README -+++ xen-4.13.0-testing/README +--- xen-4.14.0-testing.orig/README ++++ xen-4.14.0-testing/README @@ -57,8 +57,7 @@ provided by your OS distributor: * Development install of GLib v2.0 (e.g. libglib2.0-dev) * Development install of Pixman (e.g. libpixman-1-dev) @@ -31,56 +31,10 @@ * GNU bison and GNU flex * GNU gettext * ACPI ASL compiler (iasl) -Index: xen-4.13.0-testing/tools/hotplug/Linux/colo-proxy-setup +Index: xen-4.14.0-testing/tools/hotplug/Linux/remus-netbuf-setup =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/colo-proxy-setup -+++ xen-4.13.0-testing/tools/hotplug/Linux/colo-proxy-setup -@@ -76,10 +76,16 @@ function teardown_primary() - - function setup_secondary() - { -- do_without_error brctl delif $bridge $vifname -- do_without_error brctl addbr $forwardbr -- do_without_error brctl addif $forwardbr $vifname -- do_without_error brctl addif $forwardbr $forwarddev -+ if [ "$legacy_tools" ]; then -+ do_without_error brctl delif $bridge $vifname -+ do_without_error brctl addbr $forwardbr -+ do_without_error brctl addif $forwardbr $vifname -+ do_without_error brctl addif $forwardbr $forwarddev -+ else -+ do_without_error ip link add "$forwardbr" type bridge -+ do_without_error ip link set "$vifname" master "$forwardbr" -+ do_without_error ip link set "$forwarddev" master "$forwardbr" -+ fi - do_without_error ip link set dev $forwardbr up - do_without_error modprobe xt_SECCOLO - -@@ -91,10 +97,16 @@ function setup_secondary() - - function teardown_secondary() - { -- do_without_error brctl delif $forwardbr $forwarddev -- do_without_error brctl delif $forwardbr $vifname -- do_without_error brctl delbr $forwardbr -- do_without_error brctl addif $bridge $vifname -+ if [ "$legacy_tools" ]; then -+ do_without_error brctl delif $forwardbr $forwarddev -+ do_without_error brctl delif $forwardbr $vifname -+ do_without_error brctl delbr $forwardbr -+ do_without_error brctl addif $bridge $vifname -+ else -+ do_without_error ip link set "$forwarddev" nomaster -+ do_without_error ip link set "$vifname" master "$bridge" -+ do_without_error ip link del "$forwardbr" -+ fi - - do_without_error iptables -t mangle -D PREROUTING -m physdev --physdev-in \ - $vifname -j SECCOLO --index $index -Index: xen-4.13.0-testing/tools/hotplug/Linux/remus-netbuf-setup -=================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/remus-netbuf-setup -+++ xen-4.13.0-testing/tools/hotplug/Linux/remus-netbuf-setup +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/remus-netbuf-setup ++++ xen-4.14.0-testing/tools/hotplug/Linux/remus-netbuf-setup @@ -76,6 +76,7 @@ #specific setup code such as renaming. dir=$(dirname "$0") @@ -107,44 +61,37 @@ check_ifb "$ifb" || continue REMUS_IFB="$ifb" break -Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-bridge +Index: xen-4.14.0-testing/tools/hotplug/Linux/vif-bridge =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-bridge -+++ xen-4.13.0-testing/tools/hotplug/Linux/vif-bridge -@@ -40,7 +40,12 @@ bridge=$(xenstore_read_default "$XENBUS_ - - if [ -z "$bridge" ] - then -- bridge=$(brctl show | awk 'NR==2{print$1}') -+ if [ "$legacy_tools" ]; then -+ bridge=$(brctl show | awk 'NR==2{print$1}') -+ else -+ bridge=$(ip --oneline link show type bridge | awk '(NR == 1) { print $2; }') -+ bridge="${bridge%:}" -+ fi - +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/vif-bridge ++++ xen-4.14.0-testing/tools/hotplug/Linux/vif-bridge +@@ -42,7 +42,8 @@ if [ -z "$bridge" ]; then + if which brctl >&/dev/null; then + bridge=$(brctl show | awk 'NR==2{print$1}') + else +- bridge=$(bridge link | cut -d" " -f7) ++ bridge=$(ip --oneline link show type bridge | awk '(NR == 1) { print $2; }') ++ bridge="${bridge%:}" + fi if [ -z "$bridge" ] then -@@ -89,8 +94,13 @@ case "$command" in - ;; - +@@ -93,10 +94,11 @@ case "$command" in offline) -- do_without_error brctl delif "$bridge" "$dev" -- do_without_error ifconfig "$dev" down -+ if [ "$legacy_tools" ]; then -+ do_without_error brctl delif "$bridge" "$dev" + if which brctl >&/dev/null; then + do_without_error brctl delif "$bridge" "$dev" + do_without_error ifconfig "$dev" down -+ else -+ do_without_error ip link set "$dev" nomaster + else + do_without_error ip link set "$dev" nomaster + do_without_error ip link set "$dev" down -+ fi + fi +- do_without_error ifconfig "$dev" down ;; add) -Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-nat +Index: xen-4.14.0-testing/tools/hotplug/Linux/vif-nat =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-nat -+++ xen-4.13.0-testing/tools/hotplug/Linux/vif-nat +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/vif-nat ++++ xen-4.14.0-testing/tools/hotplug/Linux/vif-nat @@ -174,7 +174,11 @@ case "$command" in ;; offline) @@ -158,10 +105,10 @@ ;; esac -Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-route +Index: xen-4.14.0-testing/tools/hotplug/Linux/vif-route =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-route -+++ xen-4.13.0-testing/tools/hotplug/Linux/vif-route +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/vif-route ++++ xen-4.14.0-testing/tools/hotplug/Linux/vif-route @@ -25,7 +25,12 @@ case "${command}" in add) ;& @@ -190,39 +137,33 @@ ipcmd='del' cmdprefix='do_without_error' ;; -Index: xen-4.13.0-testing/tools/hotplug/Linux/vif2 +Index: xen-4.14.0-testing/tools/hotplug/Linux/vif2 =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif2 -+++ xen-4.13.0-testing/tools/hotplug/Linux/vif2 -@@ -7,13 +7,22 @@ dir=$(dirname "$0") - bridge=$(xenstore_read_default "$XENBUS_PATH/bridge" "$bridge") - if [ -z "$bridge" ] - then -- nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1)) -+ if [ "$legacy_tools" ]; then -+ nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1)) -+ else +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/vif2 ++++ xen-4.14.0-testing/tools/hotplug/Linux/vif2 +@@ -10,7 +10,7 @@ if [ -z "$bridge" ] + if which brctl >&/dev/null; then + nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1)) + else +- nr_bridges=$(bridge link | wc -l) + nr_bridges=$(ip --oneline link show type bridge | wc -l) -+ fi + fi if [ "$nr_bridges" != 1 ] then - fatal "no bridge specified, and don't know which one to use ($nr_bridges found)" - fi -- bridge=$(brctl show | cut -d " -+ if [ "$legacy_tools" ]; then -+ bridge=$(brctl show | cut -d " +@@ -20,7 +20,8 @@ if [ -z "$bridge" ] + bridge=$(brctl show | cut -d " " -f 2 | cut -f 1) -+ else + else +- bridge=$(bridge link | cut -d" " -f6) + bridge=$(ip --oneline link show type bridge | head -1 | cut -d ' ' -f2) + bridge="${bridge%:}" -+ fi + fi fi - command="$1" -Index: xen-4.13.0-testing/tools/hotplug/Linux/xen-network-common.sh +Index: xen-4.14.0-testing/tools/hotplug/Linux/xen-network-common.sh =================================================================== ---- xen-4.13.0-testing.orig/tools/hotplug/Linux/xen-network-common.sh -+++ xen-4.13.0-testing/tools/hotplug/Linux/xen-network-common.sh +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/xen-network-common.sh ++++ xen-4.14.0-testing/tools/hotplug/Linux/xen-network-common.sh @@ -15,6 +15,12 @@ # @@ -236,33 +177,3 @@ # Gentoo doesn't have ifup/ifdown, so we define appropriate alternatives. # Other platforms just use ifup / ifdown directly. -@@ -111,9 +117,13 @@ create_bridge () { - - # Don't create the bridge if it already exists. - if [ ! -e "/sys/class/net/${bridge}/bridge" ]; then -- brctl addbr ${bridge} -- brctl stp ${bridge} off -- brctl setfd ${bridge} 0 -+ if [ "$legacy_tools" ]; then -+ brctl addbr ${bridge} -+ brctl stp ${bridge} off -+ brctl setfd ${bridge} 0 -+ else -+ ip link add "$bridge" type bridge stp_state 0 forward_delay 0 -+ fi - fi - } - -@@ -127,7 +137,11 @@ add_to_bridge () { - ip link set dev ${dev} up || true - return - fi -- brctl addif ${bridge} ${dev} -+ if [ "$legacy_tools" ]; then -+ brctl addif ${bridge} ${dev} -+ else -+ ip link set "$dev" master "$bridge" -+ fi - ip link set dev ${dev} up - } - ++++++ reproducible.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.593091660 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.593091660 +0200 @@ -11,11 +11,11 @@ Signed-off-by: Bernhard M. Wiedemann <bwiedem...@suse.de> -Index: xen-4.13.0-testing/Config.mk +Index: xen-4.14.0-testing/Config.mk =================================================================== ---- xen-4.13.0-testing.orig/Config.mk -+++ xen-4.13.0-testing/Config.mk -@@ -151,6 +151,14 @@ export XEN_HAS_BUILD_ID=y +--- xen-4.14.0-testing.orig/Config.mk ++++ xen-4.14.0-testing/Config.mk +@@ -137,6 +137,14 @@ export XEN_HAS_BUILD_ID=y build_id_linker := --build-id=sha1 endif @@ -30,13 +30,13 @@ ifndef XEN_HAS_CHECKPOLICY CHECKPOLICY ?= checkpolicy XEN_HAS_CHECKPOLICY := $(shell $(CHECKPOLICY) -h 2>&1 | grep -q xen && echo y || echo n) -Index: xen-4.13.0-testing/xen/arch/x86/Makefile +Index: xen-4.14.0-testing/xen/arch/x86/Makefile =================================================================== ---- xen-4.13.0-testing.orig/xen/arch/x86/Makefile -+++ xen-4.13.0-testing/xen/arch/x86/Makefile -@@ -164,6 +164,7 @@ note.o: $(TARGET)-syms +--- xen-4.14.0-testing.orig/xen/arch/x86/Makefile ++++ xen-4.14.0-testing/xen/arch/x86/Makefile +@@ -165,6 +165,7 @@ note.o: $(TARGET)-syms - EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 + EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug +EFI_LDFLAGS += $(ld_no_insert_timestamp) EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20 ++++++ stubdom.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/xen/stubdom.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new.3399/stubdom.tar.bz2 differ: char 11, line 1 ++++++ vif-bridge-no-iptables.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.661091676 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.661091676 +0200 @@ -1,8 +1,8 @@ -Index: xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge +Index: xen-4.14.0-testing/tools/hotplug/Linux/vif-bridge =================================================================== ---- xen-4.5.0-testing.orig/tools/hotplug/Linux/vif-bridge -+++ xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge -@@ -93,7 +93,7 @@ case "$command" in +--- xen-4.14.0-testing.orig/tools/hotplug/Linux/vif-bridge ++++ xen-4.14.0-testing/tools/hotplug/Linux/vif-bridge +@@ -99,7 +99,7 @@ case "$command" in ;; esac ++++++ x86-cpufreq-report.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.677091680 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.677091680 +0200 @@ -1,7 +1,7 @@ -Index: xen-4.12.0-testing/xen/arch/x86/platform_hypercall.c +Index: xen-4.14.0-testing/xen/arch/x86/platform_hypercall.c =================================================================== ---- xen-4.12.0-testing.orig/xen/arch/x86/platform_hypercall.c -+++ xen-4.12.0-testing/xen/arch/x86/platform_hypercall.c +--- xen-4.14.0-testing.orig/xen/arch/x86/platform_hypercall.c ++++ xen-4.14.0-testing/xen/arch/x86/platform_hypercall.c @@ -25,7 +25,7 @@ #include <xen/symbols.h> #include <asm/current.h> @@ -9,9 +9,9 @@ -#include <acpi/cpufreq/processor_perf.h> +#include <acpi/cpufreq/cpufreq.h> #include <asm/edd.h> + #include <asm/microcode.h> #include <asm/mtrr.h> - #include <asm/io_apic.h> -@@ -807,6 +807,41 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PA +@@ -808,6 +808,41 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PA ret = -EFAULT; } break; @@ -53,10 +53,10 @@ default: ret = -ENOSYS; -Index: xen-4.12.0-testing/xen/include/public/platform.h +Index: xen-4.14.0-testing/xen/include/public/platform.h =================================================================== ---- xen-4.12.0-testing.orig/xen/include/public/platform.h -+++ xen-4.12.0-testing/xen/include/public/platform.h +--- xen-4.14.0-testing.orig/xen/include/public/platform.h ++++ xen-4.14.0-testing/xen/include/public/platform.h @@ -553,6 +553,16 @@ struct xenpf_core_parking { typedef struct xenpf_core_parking xenpf_core_parking_t; DEFINE_XEN_GUEST_HANDLE(xenpf_core_parking_t); ++++++ x86-ioapic-ack-default.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:55.685091681 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:55.685091681 +0200 @@ -1,10 +1,10 @@ Change default IO-APIC ack mode for single IO-APIC systems to old-style. -Index: xen-4.13.0-testing/xen/arch/x86/io_apic.c +Index: xen-4.14.0-testing/xen/arch/x86/io_apic.c =================================================================== ---- xen-4.13.0-testing.orig/xen/arch/x86/io_apic.c -+++ xen-4.13.0-testing/xen/arch/x86/io_apic.c -@@ -2029,7 +2029,10 @@ void __init setup_IO_APIC(void) +--- xen-4.14.0-testing.orig/xen/arch/x86/io_apic.c ++++ xen-4.14.0-testing/xen/arch/x86/io_apic.c +@@ -2031,7 +2031,10 @@ void __init setup_IO_APIC(void) io_apic_irqs = ~PIC_IRQS; printk("ENABLING IO-APIC IRQs\n"); ++++++ xen-4.13.1-testing-src.tar.bz2 -> xen-4.14.0-testing-src.tar.bz2 ++++++ ++++ 143588 lines of diff (skipped) ++++++ xen.bug1026236.suse_vtsc_tolerance.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:59.369092544 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:59.369092544 +0200 @@ -8,11 +8,11 @@ the hostadmin to decide how much tolerance all running domUs can actually handle. The default is zero tolerance. -Index: xen-4.13.1-testing/xen/arch/x86/time.c +Index: xen-4.14.0-testing/xen/arch/x86/time.c =================================================================== ---- xen-4.13.1-testing.orig/xen/arch/x86/time.c -+++ xen-4.13.1-testing/xen/arch/x86/time.c -@@ -43,6 +43,9 @@ +--- xen-4.14.0-testing.orig/xen/arch/x86/time.c ++++ xen-4.14.0-testing/xen/arch/x86/time.c +@@ -45,6 +45,9 @@ static char __initdata opt_clocksource[10]; string_param("clocksource", opt_clocksource); @@ -22,7 +22,7 @@ unsigned long __read_mostly cpu_khz; /* CPU clock frequency in kHz. */ DEFINE_SPINLOCK(rtc_lock); unsigned long pit0_ticks; -@@ -2230,6 +2233,7 @@ int tsc_set_info(struct domain *d, +@@ -2391,6 +2394,7 @@ int tsc_set_info(struct domain *d, switch ( tsc_mode ) { @@ -30,7 +30,7 @@ case TSC_MODE_DEFAULT: case TSC_MODE_ALWAYS_EMULATE: d->arch.vtsc_offset = get_s_time() - elapsed_nsec; -@@ -2243,8 +2247,26 @@ int tsc_set_info(struct domain *d, +@@ -2404,8 +2408,26 @@ int tsc_set_info(struct domain *d, * When a guest is created, gtsc_khz is passed in as zero, making * d->arch.tsc_khz == cpu_khz. Thus no need to check incarnation. */ ++++++ xen.libxl.dmmd.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:59.381092547 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:59.385092548 +0200 @@ -7,10 +7,10 @@ tools/libxl/libxlu_disk_l.l | 2 ++ 4 files changed, 37 insertions(+), 6 deletions(-) -Index: xen-4.13.0-testing/tools/libxl/libxl_disk.c +Index: xen-4.14.0-testing/tools/libxl/libxl_disk.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_disk.c -+++ xen-4.13.0-testing/tools/libxl/libxl_disk.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_disk.c ++++ xen-4.14.0-testing/tools/libxl/libxl_disk.c @@ -178,7 +178,7 @@ static int libxl__device_disk_setdefault return rc; } @@ -31,10 +31,10 @@ flexarray_append(back, "params"); flexarray_append(back, GCSPRINTF("%s:%s", libxl__device_disk_string_of_format(disk->format), -Index: xen-4.13.0-testing/tools/libxl/libxl_device.c +Index: xen-4.14.0-testing/tools/libxl/libxl_device.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_device.c -+++ xen-4.13.0-testing/tools/libxl/libxl_device.c +--- xen-4.14.0-testing.orig/tools/libxl/libxl_device.c ++++ xen-4.14.0-testing/tools/libxl/libxl_device.c @@ -326,7 +326,8 @@ static int disk_try_backend(disk_try_bac return 0; @@ -57,11 +57,11 @@ bad_colo: LOG(DEBUG, "Disk vdev=%s, backend %s not compatible with colo", a->disk->vdev, libxl_disk_backend_to_string(backend)); -Index: xen-4.13.0-testing/tools/libxl/libxl_dm.c +Index: xen-4.14.0-testing/tools/libxl/libxl_dm.c =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_dm.c -+++ xen-4.13.0-testing/tools/libxl/libxl_dm.c -@@ -1162,6 +1162,30 @@ out: +--- xen-4.14.0-testing.orig/tools/libxl/libxl_dm.c ++++ xen-4.14.0-testing/tools/libxl/libxl_dm.c +@@ -1182,6 +1182,30 @@ out: return rc; } @@ -92,7 +92,7 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, const char *dm, int guest_domid, const libxl_domain_config *guest_config, -@@ -1795,9 +1819,11 @@ static int libxl__build_device_model_arg +@@ -1849,9 +1873,11 @@ static int libxl__build_device_model_arg libxl__device_disk_dev_number(disks[i].vdev, &disk, &part); const char *format; char *drive; @@ -105,11 +105,11 @@ if (dev_number == -1) { LOGD(WARN, guest_domid, "unable to determine"" disk number for %s", disks[i].vdev); -Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l +Index: xen-4.14.0-testing/tools/libxl/libxlu_disk_l.l =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_l.l -+++ xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l -@@ -230,6 +230,8 @@ target=.* { STRIP(','); SAVESTRING("targ +--- xen-4.14.0-testing.orig/tools/libxl/libxlu_disk_l.l ++++ xen-4.14.0-testing/tools/libxl/libxlu_disk_l.l +@@ -241,6 +241,8 @@ target=.* { STRIP(','); SAVESTRING("targ free(newscript); } @@ -118,13 +118,13 @@ tapdisk:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); } tap2?:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); } aio:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); } -Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.14.0-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.13.0-testing/tools/libxl/libxl_internal.h -@@ -2042,6 +2042,10 @@ struct libxl__cpuid_policy { - char *policy[4]; - }; +--- xen-4.14.0-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.14.0-testing/tools/libxl/libxl_internal.h +@@ -2059,6 +2059,10 @@ _hidden char *libxl__object_to_json(libx + _hidden void libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool retore, + libxl_domain_build_info *info); +_hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid, + const libxl_device_disk *disk, ++++++ xl-conf-default-bridge.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:59.489092572 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:59.493092573 +0200 @@ -1,8 +1,8 @@ -Index: xen-4.4.0-testing/tools/examples/xl.conf +Index: xen-4.14.0-testing/tools/examples/xl.conf =================================================================== ---- xen-4.4.0-testing.orig/tools/examples/xl.conf -+++ xen-4.4.0-testing/tools/examples/xl.conf -@@ -30,7 +30,7 @@ +--- xen-4.14.0-testing.orig/tools/examples/xl.conf ++++ xen-4.14.0-testing/tools/examples/xl.conf +@@ -34,7 +34,7 @@ #vif.default.script="vif-bridge" # default bridge device to use with vif-bridge hotplug scripts ++++++ xl-conf-disable-autoballoon.patch ++++++ --- /var/tmp/diff_new_pack.nerjUn/_old 2020-08-06 17:31:59.501092575 +0200 +++ /var/tmp/diff_new_pack.nerjUn/_new 2020-08-06 17:31:59.505092576 +0200 @@ -1,6 +1,8 @@ ---- xen-4.12.0-testing/tools/examples/xl.conf.orig 2019-03-11 06:17:17.586380817 -0600 -+++ xen-4.12.0-testing/tools/examples/xl.conf 2019-03-11 06:17:31.314553910 -0600 -@@ -3,7 +3,7 @@ +Index: xen-4.14.0-testing/tools/examples/xl.conf +=================================================================== +--- xen-4.14.0-testing.orig/tools/examples/xl.conf ++++ xen-4.14.0-testing/tools/examples/xl.conf +@@ -7,7 +7,7 @@ # Control whether dom0 is ballooned down when xen doesn't have enough # free memory to create a domain. "auto" means only balloon if dom0 # starts with all the host's memory.