Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2017-08-24 18:21:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen" Thu Aug 24 18:21:39 2017 rev:233 rq:516579 version:4.9.0_50 Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2017-07-07 10:15:34.926339844 +0200 +++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2017-08-24 18:21:48.419959788 +0200 @@ -1,0 +2,143 @@ +Fri Aug 11 16:37:44 MDT 2017 - carn...@suse.com + +- Clean up spec file errors and a few warnings. (bsc#1027519) +- Removed conditional 'with_systemd' and some old deprecated + 'sles_version' checks. + xen.spec + +------------------------------------------------------------------- +Thu Aug 10 19:45:31 UTC 2017 - jfeh...@suse.com + +- Remove use of brctl utiltiy from supportconfig plugin + FATE#323639 + +------------------------------------------------------------------- +Thu Aug 10 07:50:47 UTC 2017 - oher...@suse.de + +- Use upstream variant of mini-os __udivmoddi4 change + gcc7-mini-os.patch + +------------------------------------------------------------------- +Wed Aug 9 13:14:56 MDT 2017 - carn...@suse.com + +- fate#323639 Move bridge-utils to legacy + replace-obsolete-network-configuration-commands-in-s.patch + +------------------------------------------------------------------- +Mon Aug 7 12:53:44 UTC 2017 - oher...@suse.de + +- bsc#1035231 - migration of HVM domU does not use superpages + on destination dom0 + libxc.sr.superpage.patch + +------------------------------------------------------------------- +Tue Aug 1 20:02:58 UTC 2017 - jfeh...@suse.com + +- Add a supportconfig plugin + xen-supportconfig + FATE#323661 + +------------------------------------------------------------------- +Tue Jul 25 14:48:02 UTC 2017 - oher...@suse.de + +- bsc#1026236 - add suse_vtsc_tolerance= cmdline option for Xen + To avoid emulation of TSC access from a domU after live migration + add a global tolerance for the measured host kHz + xen.suse_vtsc_tolerance.patch + +------------------------------------------------------------------- +Thu Jul 20 10:46:43 MDT 2017 - carn...@suse.com + +- fate#323662 Drop qemu-dm from xen-tools package + The following tarball and patches have been removed + qemu-xen-traditional-dir-remote.tar.bz2 + VNC-Support-for-ExtendedKeyEvent-client-message.patch + 0001-net-move-the-tap-buffer-into-TAPState.patch + 0002-net-increase-tap-buffer-size.patch + 0003-e1000-fix-access-4-bytes-beyond-buffer-end.patch + 0004-e1000-secrc-support.patch + 0005-e1000-multi-buffer-packet-support.patch + 0006-e1000-clear-EOP-for-multi-buffer-descriptors.patch + 0007-e1000-verify-we-have-buffers-upfront.patch + 0008-e1000-check-buffer-availability.patch + CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch + CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch + CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch + CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch + CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch + CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch + CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch + CVE-2015-4037-qemut-smb-config-dir-name.patch + CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch + CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch + CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch + CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch + CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch + CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch + CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch + CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch + CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch + CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch + CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch + CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch + CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch + CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch + CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch + CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch + CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch + CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch + CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch + CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch + CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch + CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch + CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch + CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch + blktap.patch + cdrom-removable.patch + xen-qemu-iscsi-fix.patch + qemu-security-etch1.patch + xen-disable-qemu-monitor.patch + xen-hvm-default-bridge.patch + qemu-ifup-set-mtu.patch + ioemu-vnc-resize.patch + capslock_enable.patch + altgr_2.patch + log-guest-console.patch + bdrv_open2_fix_flags.patch + bdrv_open2_flags_2.patch + ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch + qemu-dm-segfault.patch + bdrv_default_rwflag.patch + kernel-boot-hvm.patch + ioemu-watchdog-support.patch + ioemu-watchdog-linkage.patch + ioemu-watchdog-ib700-timer.patch + ioemu-hvm-pv-support.patch + pvdrv_emulation_control.patch + ioemu-disable-scsi.patch + ioemu-disable-emulated-ide-if-pv.patch + xenpaging.qemu.flush-cache.patch + ioemu-devicemodel-include.patch +- Cleanup spec file and remove unused KMP patches + kmp_filelist + supported_module.patch + xen_pvonhvm.xen_emul_unplug.patch + +------------------------------------------------------------------- +Mon Jul 17 15:19:50 MDT 2017 - carn...@suse.com + +- bsc#1002573 - Optimize LVM functions in block-dmmd + block-dmmd + +------------------------------------------------------------------- +Fri Jul 14 18:05:12 UTC 2017 - oher...@suse.de + +- Record initial Xen dmesg in /var/log/xen/xen-boot.log for + supportconfig. Keep previous log in /var/log/xen/xen-boot.prev.log + +------------------------------------------------------------------- +Fri Jul 14 10:41:34 UTC 2017 - oher...@suse.de + +- Remove storytelling from description in xen.rpm + +------------------------------------------------------------------- Old: ---- 0001-net-move-the-tap-buffer-into-TAPState.patch 0002-net-increase-tap-buffer-size.patch 0003-e1000-fix-access-4-bytes-beyond-buffer-end.patch 0004-e1000-secrc-support.patch 0005-e1000-multi-buffer-packet-support.patch 0006-e1000-clear-EOP-for-multi-buffer-descriptors.patch 0007-e1000-verify-we-have-buffers-upfront.patch 0008-e1000-check-buffer-availability.patch CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch CVE-2015-4037-qemut-smb-config-dir-name.patch CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch VNC-Support-for-ExtendedKeyEvent-client-message.patch altgr_2.patch bdrv_default_rwflag.patch bdrv_open2_fix_flags.patch bdrv_open2_flags_2.patch blktap.patch capslock_enable.patch cdrom-removable.patch ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch ioemu-devicemodel-include.patch ioemu-disable-emulated-ide-if-pv.patch ioemu-disable-scsi.patch ioemu-hvm-pv-support.patch ioemu-vnc-resize.patch ioemu-watchdog-ib700-timer.patch ioemu-watchdog-linkage.patch ioemu-watchdog-support.patch kernel-boot-hvm.patch kmp_filelist log-guest-console.patch pvdrv_emulation_control.patch qemu-dm-segfault.patch qemu-ifup-set-mtu.patch qemu-security-etch1.patch qemu-xen-traditional-dir-remote.tar.bz2 supported_module.patch xen-disable-qemu-monitor.patch xen-hvm-default-bridge.patch xen-qemu-iscsi-fix.patch xen_pvonhvm.xen_emul_unplug.patch xenpaging.qemu.flush-cache.patch New: ---- libxc.sr.superpage.patch replace-obsolete-network-configuration-commands-in-s.patch xen-supportconfig xen.suse_vtsc_tolerance.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ ++++ 737 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/xen/xen.spec ++++ and /work/SRC/openSUSE:Factory/.xen.new/xen.spec ++++++ block-dmmd ++++++ --- /var/tmp/diff_new_pack.7V0YNx/_old 2017-08-24 18:21:51.015594313 +0200 +++ /var/tmp/diff_new_pack.7V0YNx/_new 2017-08-24 18:21:51.019593750 +0200 @@ -24,6 +24,8 @@ # ## # History: +# 2017-07-10, mlati...@suse.com: +# Modification to use syslog for progress messages by ldevul...@suse.com # 2017-06-12, mlati...@suse.com: # Merge LVM improvements by loic.devul...@mpsa.com # Document libxl "script=block-dmmd" syntax in examples @@ -64,13 +66,8 @@ typeset -rx VGSCAN_BIN=/sbin/vgscan typeset -rx VGCHANGE_BIN=/sbin/vgchange typeset -rx CLVMD_BIN=/usr/sbin/clvmd -typeset -rx DATE_LOG="date +%F_%T.%N" typeset -rx DATE_SEC="date +%s" -# Uncomment for debugging purposes -# exec >> /tmp/block-dmmd-$(${DATE_LOG}).log 2>&1 -# echo shell-flags: $- - # We check for errors ourselves set +e @@ -79,7 +76,7 @@ # If we are in cluster mode if ps -e | grep -q [c]lvmd 2>/dev/null; then # Logging message - log err "Synchronizing cLVM..." + log info "Synchronizing cLVM..." # Synchronize cLVM ${CLVMD_BIN} -R > /dev/null 2>&1 \ @@ -142,7 +139,7 @@ fi # Logging message - echo "[$(${DATE_LOG})] activate MD device ${dev}..." >&2 + log info "Activating MD device ${dev}..." # Is MD device already active? # We need to use full path name, aliase is not possible... @@ -158,7 +155,7 @@ # A return code of 2 can indicate the array configuration was incorrect if [[ ${rc} == 2 ]]; then # Logging message - echo "[$(${DATE_LOG})] verifying MD device ${dev} activation..." >&2 + log info "Verifying MD device ${dev} activation..." # If the array is active, return 0, otherwise return an error ${MDADM_BIN} -Q -D ${dev_path}/${dev##*/} &>/dev/null && return 0 \ @@ -188,7 +185,7 @@ fi # Logging message - echo "[$(${DATE_LOG})] deactivate MD device ${dev}..." >&2 + log info "Deactivating MD device ${dev}..." # We need the device name only while deactivating ${MDADM_BIN} -S ${dev_path}/${dev##*/} > /dev/null 2>&1 @@ -204,7 +201,7 @@ local end_time # Logging message - echo "[$(${DATE_LOG})] ${action} LVM device ${dev}..." >&2 + log info "${action} LVM device ${dev}..." # Set end_time for the loop (( end_time = $(${DATE_SEC}) + run_timeout )) ++++++ libxc.sr.superpage.patch ++++++ ++++ 663 lines (skipped) ++++++ replace-obsolete-network-configuration-commands-in-s.patch ++++++ >From 5e1e18fde92bae1ae87f78d470e80b1ffc9350d1 Mon Sep 17 00:00:00 2001 From: Michal Kubecek <mkube...@suse.cz> Date: Wed, 26 Jul 2017 10:28:54 +0200 Subject: [PATCH] replace obsolete network configuration commands in scripts Some scripts still use obsolete network configuration commands ifconfig and brctl. Replace them by commands from iproute2 package. --- README | 3 +-- tools/hotplug/Linux/colo-proxy-setup | 14 ++++++-------- tools/hotplug/Linux/remus-netbuf-setup | 3 ++- tools/hotplug/Linux/vif-bridge | 7 ++++--- tools/hotplug/Linux/vif-nat | 2 +- tools/hotplug/Linux/vif-route | 6 ++++-- tools/hotplug/Linux/vif2 | 6 +++--- tools/hotplug/Linux/xen-network-common.sh | 6 ++---- .../i386-dm/qemu-ifup-Linux | 5 +++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README b/README index de13bf4ae803..27f3074c62cd 100644 --- a/README +++ b/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) * pkg-config - * bridge-utils package (/sbin/brctl) - * iproute package (/sbin/ip) + * iproute package (/sbin/ip, /sbin/bridge) * GNU bison and GNU flex * GNU gettext * ACPI ASL compiler (iasl) diff --git a/tools/hotplug/Linux/colo-proxy-setup b/tools/hotplug/Linux/colo-proxy-setup index 94e203445282..aa3eaaf02dd7 100755 --- a/tools/hotplug/Linux/colo-proxy-setup +++ b/tools/hotplug/Linux/colo-proxy-setup @@ -76,10 +76,9 @@ 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 + 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" do_without_error ip link set dev $forwardbr up do_without_error modprobe xt_SECCOLO @@ -91,10 +90,9 @@ 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 + do_without_error ip link set "$forwarddev" nomaster + do_without_error ip link set "$vifname" master "$bridge" + do_without_error ip link del "$forwardbr" do_without_error iptables -t mangle -D PREROUTING -m physdev --physdev-in \ $vifname -j SECCOLO --index $index diff --git a/tools/hotplug/Linux/remus-netbuf-setup b/tools/hotplug/Linux/remus-netbuf-setup index 87dfa6977864..4cca30374a16 100644 --- a/tools/hotplug/Linux/remus-netbuf-setup +++ b/tools/hotplug/Linux/remus-netbuf-setup @@ -139,8 +139,9 @@ check_ifb() { setup_ifb() { - for ifb in `ifconfig -a -s|egrep ^ifb|cut -d ' ' -f1` + for ifb in $(ip --oneline link show type ifb | cut -d ' ' -f2) do + ifb="${ifb%:}" check_ifb "$ifb" || continue REMUS_IFB="$ifb" break diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge index a10b16d84704..db4eae635ecb 100644 --- a/tools/hotplug/Linux/vif-bridge +++ b/tools/hotplug/Linux/vif-bridge @@ -40,7 +40,8 @@ bridge=$(xenstore_read_default "$XENBUS_PATH/bridge" "$bridge") if [ -z "$bridge" ] then - bridge=$(brctl show | awk 'NR==2{print$1}') + bridge=$(ip --oneline link show type bridge | awk '(NR == 1) { print $2; }') + bridge="${bridge%:}" if [ -z "$bridge" ] then @@ -89,8 +90,8 @@ case "$command" in ;; offline) - do_without_error brctl delif "$bridge" "$dev" - do_without_error ifconfig "$dev" down + do_without_error ip link set "$dev" nomaster + do_without_error ip link set "$dev" down ;; add) diff --git a/tools/hotplug/Linux/vif-nat b/tools/hotplug/Linux/vif-nat index a76d9c784b5f..d06d31d50df0 100644 --- a/tools/hotplug/Linux/vif-nat +++ b/tools/hotplug/Linux/vif-nat @@ -174,7 +174,7 @@ case "$command" in ;; offline) [ "$dhcp" != 'no' ] && dhcp_down - do_without_error ifconfig "${dev}" down + do_without_error ip link set "${dev}" down ;; esac diff --git a/tools/hotplug/Linux/vif-route b/tools/hotplug/Linux/vif-route index d49eb20795bf..98798fe5e4c3 100644 --- a/tools/hotplug/Linux/vif-route +++ b/tools/hotplug/Linux/vif-route @@ -23,13 +23,15 @@ main_ip=$(dom0_ip) case "${command}" in online) - ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up + ip addr add "${main_ip}/32" dev "$dev" + ip link set "dev" up echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp ipcmd='add' cmdprefix='' ;; offline) - do_without_error ifdown ${dev} + do_without_error ip addr flush dev "$dev" + do_without_error ip link set "$dev" down ipcmd='del' cmdprefix='do_without_error' ;; diff --git a/tools/hotplug/Linux/vif2 b/tools/hotplug/Linux/vif2 index 2c155be68c2c..dff180b1d7a2 100644 --- a/tools/hotplug/Linux/vif2 +++ b/tools/hotplug/Linux/vif2 @@ -7,13 +7,13 @@ 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)) + nr_bridges=$(ip --oneline link show type bridge | wc -l) 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 " -" -f 2 | cut -f 1) + bridge=$(ip --oneline link show type bridge | head -1 | cut -d ' ' -f2) + bridge="${bridge%:}" fi command="$1" diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh index 92ffa603f7e5..7e1ae94dc6d9 100644 --- a/tools/hotplug/Linux/xen-network-common.sh +++ b/tools/hotplug/Linux/xen-network-common.sh @@ -111,9 +111,7 @@ 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 + ip link add "$bridge" type bridge stp_state 0 forward_delay 0 fi } @@ -127,7 +125,7 @@ add_to_bridge () { ip link set dev ${dev} up || true return fi - brctl addif ${bridge} ${dev} + ip link set "$dev" master "$bridge" ip link set dev ${dev} up } ++++++ xen-supportconfig ++++++ #!/bin/bash ############################################################# # Name: Supportconfig Plugin for Xen # Description: Gathers important troubleshooting information # about Xen and its tools # Author: Jim Fehlig <jfeh...@suse.com> ############################################################# # TODO: # - Anything needed for UEFI? # RCFILE="/usr/lib/supportconfig/resources/scplugin.rc" GRUB2_CONF_FILES="/etc/default/grub" XEN_CONF_FILES="/etc/xen/xl.conf /etc/sysconfig/xencommons /etc/sysconfig/xendomains" XEN_SERVICES="xencommons xendomains xen-watchdog" VM_CONF_FILES="" XEN_LOG_FILES="" if [ -s $RCFILE ]; then if ! source $RCFILE; then echo "ERROR: Initializing resource file: $RCFILE" >&2 exit 1 fi fi rpm_verify() { thisrpm="$1" local ret=0 echo echo "#==[ Validating RPM ]=================================#" if rpm -q "$thisrpm" >/dev/null 2>&1; then echo "# rpm -V $thisrpm" if rpm -V "$thisrpm"; then echo "Status: Passed" else echo "Status: WARNING" fi else echo "package $thisrpm is not installed" ret=1 fi echo return $ret } # if no xen package we are done if ! rpm_verify xen; then echo "Skipped" exit 0 fi # if not a xen host (dom0) we are done echo "#==[ Checking if booted Xen ]=================================#" if [ ! -d /proc/xen ] || [ ! -e /proc/xen/capabilities ] || [ `cat /proc/xen/capabilities` != "control_d" ]; then echo "No" echo "Skipped" exit 0 else echo "Yes" echo fi # basic system information: plugin_command "uname -r" for service in $XEN_SERVICES; do plugin_command "systemctl status $service" plugin_command "systemctl is-enabled $service" done plugin_command "lscpu" plugin_command "xl info --numa" plugin_command "xl list" plugin_command "xl pci-assignable-list" plugin_command "xenstore-ls" plugin_command "ps -ef | grep xen" # dump grub2-related conf files pconf_files "$GRUB2_CONF_FILES" # dump Xen-related conf files pconf_files "$XEN_CONF_FILES" # detailed system info: plugin_command "xl list --long" plugin_command "xl dmesg" # network-related info often useful for debugging if [ systemctl is-enabled NetworkManager.service 2>&1 > /dev/null ]; then echo "NOTE: NetworkManager should not be enabled on a Xen host" fi plugin_command "route -n" plugin_command "arp -v" if plugin_command "brctl show"; then for BRIDGE in `brctl show | grep -v ^bridge | egrep "^[a-z]|^[A-Z]" | awk '{print $1}'`; do plugin_command "brctl showmacs $BRIDGE" done fi # list contents of common config and image directories plugin_command "ls -alR /etc/xen/vm/" plugin_command "ls -alR /etc/xen/auto/" plugin_command "ls -alR /var/lib/xen/images/" # dump VM-related conf files test -d /etc/xen/vm && VM_CONF_FILES=$(find -L /etc/xen/vm/ -type f | sort) pconf_files "$VM_CONF_FILES" # dump log files test -d /var/log/xen && XEN_LOG_FILES="$(find -L /var/log/xen/ -type f | grep 'log$' | sort)" plog_files 0 "$XEN_LOG_FILES" echo "Done" ++++++ xen.suse_vtsc_tolerance.patch ++++++ suse_vtsc_tolerance=<val> To avoid emulation of vTSC after live migration or save/restore allow different clock frequency up to the specified value. If the frequency is within the allowed range TSC access by the domU will be performed at native speed. Otherwise TSC access will be emulated. It is up to the hostadmin to decide how much tolerance all running domUs can actually handle. The default is zero tolerance. --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -41,6 +41,9 @@ static char __initdata opt_clocksource[10]; string_param("clocksource", opt_clocksource); +static unsigned int __read_mostly opt_suse_vtsc_tolerance; +integer_param("suse_vtsc_tolerance", opt_suse_vtsc_tolerance); + unsigned long __read_mostly cpu_khz; /* CPU clock frequency in kHz. */ DEFINE_SPINLOCK(rtc_lock); unsigned long pit0_ticks; @@ -2009,6 +2012,8 @@ void tsc_set_info(struct domain *d, uint32_t tsc_mode, uint64_t elapsed_nsec, uint32_t gtsc_khz, uint32_t incarnation) { + uint32_t khz_diff = 0, tolerated = 0; + if ( is_idle_domain(d) || is_hardware_domain(d) ) { d->arch.vtsc = 0; @@ -2024,7 +2029,18 @@ void tsc_set_info(struct domain *d, d->arch.vtsc_offset = get_s_time() - elapsed_nsec; d->arch.tsc_khz = gtsc_khz ?: cpu_khz; set_time_scale(&d->arch.vtsc_to_ns, d->arch.tsc_khz * 1000); - + khz_diff = 0; + if (gtsc_khz) + khz_diff = cpu_khz > gtsc_khz ? cpu_khz - gtsc_khz : gtsc_khz - cpu_khz; + if (opt_suse_vtsc_tolerance) { + tolerated = khz_diff <= opt_suse_vtsc_tolerance; + } else { + tolerated = d->arch.tsc_khz == cpu_khz; + } + if ( tsc_mode == TSC_MODE_DEFAULT && gtsc_khz ) { + printk(XENLOG_WARNING "%s: d%u: dom0 has %lu kHz, domU expects %u kHz, difference of %u is %s tolerance of %u\n", + __func__, d->domain_id, cpu_khz, gtsc_khz, khz_diff, tolerated ? "within" : "outside", opt_suse_vtsc_tolerance); + } /* * In default mode use native TSC if the host has safe TSC and * host and guest frequencies are the same (either "naturally" or @@ -2033,7 +2049,7 @@ void tsc_set_info(struct domain *d, * d->arch.tsc_khz == cpu_khz. Thus no need to check incarnation. */ if ( tsc_mode == TSC_MODE_DEFAULT && host_tsc_is_safe() && - (d->arch.tsc_khz == cpu_khz || + (tolerated || (is_hvm_domain(d) && hvm_get_tsc_scaling_ratio(d->arch.tsc_khz))) ) { ++++++ xencommons.service ++++++ --- /var/tmp/diff_new_pack.7V0YNx/_old 2017-08-24 18:21:51.487527863 +0200 +++ /var/tmp/diff_new_pack.7V0YNx/_new 2017-08-24 18:21:51.487527863 +0200 @@ -30,6 +30,7 @@ RemainAfterExit=true ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities ExecStart=/usr/bin/xenstore-ls -f +ExecStartPost=/bin/sh -c 'mv -vf /var/log/xen/xen-boot.log /var/log/xen/xen-boot.prev.log ; /usr/sbin/xl dmesg > /var/log/xen/xen-boot.log' [Install] WantedBy=multi-user.target