Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2014-02-02 18:46:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen" Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2014-01-07 17:25:20.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2014-02-02 18:47:01.000000000 +0100 @@ -1,0 +2,42 @@ +Thu Jan 23 16:11:39 MST 2014 - carn...@suse.com + +- Dropped xen-changeset.patch. It is no longer needed. + +------------------------------------------------------------------- +Sun Jan 19 00:13:06 CET 2014 - oher...@suse.de + +- BuildRequire libfdt1-devel on ARM + +------------------------------------------------------------------- +Sat Jan 18 00:35:46 CET 2014 - oher...@suse.de + +- fate#311487: remove modprobe.conf files for autoloading of + pv-on-hvm files. + Rely on core kernel to skip initialization of emulated hardware + Handle xen_emul_unplug= from xenlinux based core kernel-default + +------------------------------------------------------------------- +Wed Jan 16 13:11:32 MST 2014 - carn...@suse.com + +- Fix the spec file to build for old distros + The xm/xend toolstack will continue to be contained in xen-tools + for older openSUSE and sles distros but it will be contained in + xend-tools for os13.x + +------------------------------------------------------------------- +Wed Jan 15 19:55:32 CET 2014 - oher...@suse.de + +- fate#316071: add discard support for file backed storage (qdisk) + to qemu-upstream, enabled unconditionally + +------------------------------------------------------------------- +Tue Jan 14 12:13:45 MST 2014 - carn...@suse.com + +- Update to Xen 4.4.0 RC2 c/s 28287 + +------------------------------------------------------------------- +Tue Jan 9 11:44:11 MST 2014 - carn...@suse.com + +- Restore 32bit ix86 support in spec file for kmps and domU tools + +------------------------------------------------------------------- Old: ---- xen-changeset.patch xen_pvdrivers.conf New: ---- qemu-xen-upstream-blkif-discard.patch xen_pvonhvm.xen_emul_unplug.patch xend-config-enable-dump-comment.patch xend-tools-watchdog-support.patch xend-vif-route-ifup.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:03.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:03.000000000 +0100 @@ -15,24 +15,36 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - Name: xen -ExclusiveArch: x86_64 %arm aarch64 +ExclusiveArch: %ix86 x86_64 %arm aarch64 %define xvers 4.4 %define xvermaj 4 -%define changeset 28233 +%define changeset 28287 %define xen_build_dir xen-4.4.0-testing %ifarch %arm aarch64 %define with_kmp 0 +%define with_xend 0 %define with_debug 0 %define with_stubdom 0 -%define with_xend 0 +%define with_dom0_support 1 %else +%ifarch x86_64 %define with_kmp 1 %define with_debug 1 %define with_stubdom 1 +%define with_dom0_support 1 %define with_qemu_traditional 1 +%if %suse_version > 1230 +%define with_xend 1 +%else +%define with_xend 1 +%endif +%else %define with_xend 0 +%define with_stubdom 0 +%define with_dom0_support 0 +%define with_qemu_traditional 0 +%endif %endif # EFI requires gcc46 or newer # its available in 12.1 or >= sles11sp2 @@ -47,34 +59,45 @@ %else %define with_systemd 0 %endif -%ifnarch %arm aarch64 +%ifarch %arm aarch64 +BuildRequires: libfdt1-devel +%endif +%ifarch %ix86 x86_64 BuildRequires: dev86 %endif BuildRequires: fdupes BuildRequires: glib2-devel BuildRequires: libaio-devel BuildRequires: libbz2-devel -BuildRequires: libpixman-1-0-devel BuildRequires: libuuid-devel BuildRequires: libxml2-devel BuildRequires: libyajl-devel +BuildRequires: libpixman-1-0-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: python-devel +BuildRequires: transfig +%if %suse_version >= 1030 BuildRequires: texinfo BuildRequires: texlive +%if %suse_version > 1220 +BuildRequires: texlive-latex BuildRequires: texlive-courier BuildRequires: texlive-dvips BuildRequires: texlive-helvetic -BuildRequires: texlive-latex BuildRequires: texlive-psnfss BuildRequires: texlive-times -BuildRequires: transfig BuildRequires: tex(a4.sty) BuildRequires: tex(a4wide.sty) BuildRequires: tex(fancyhdr.sty) BuildRequires: tex(parskip.sty) BuildRequires: tex(setspace.sty) +%endif +%else +BuildRequires: te_ams +BuildRequires: te_latex +BuildRequires: tetex +%endif %if %suse_version >= 1230 BuildRequires: systemd %endif @@ -84,7 +107,7 @@ %if %suse_version <= 1110 BuildRequires: pmtools %else -%ifnarch %arm aarch64 +%ifarch %ix86 x86_64 BuildRequires: acpica %endif %endif @@ -102,11 +125,15 @@ %if %{?with_kmp}0 BuildRequires: kernel-source BuildRequires: kernel-syms -BuildRequires: lndir BuildRequires: module-init-tools +%if %suse_version >= 1230 +BuildRequires: lndir +%else +BuildRequires: xorg-x11-util-devel +%endif %endif -Version: 4.4.0_01 +Version: 4.4.0_02 Release: 0 PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) @@ -132,7 +159,6 @@ Source24: xmclone.sh Source26: init.xen_loop %if %{?with_kmp}0 -Source27: xen_pvdrivers.conf Source28: kmp_filelist %endif Source29: block-dmmd @@ -177,8 +203,7 @@ Patch258: 0008-e1000-check-buffer-availability.patch # Our platform specific patches Patch301: xen-destdir.patch -Patch302: xen-changeset.patch -Patch303: xen-xmexample.patch +Patch302: xen-xmexample.patch Patch310: bridge-opensuse.patch Patch311: bridge-vlan.patch Patch312: bridge-bonding.patch @@ -226,6 +251,8 @@ Patch381: ioemu-disable-scsi.patch Patch382: ioemu-disable-emulated-ide-if-pv.patch Patch383: xenpaging.qemu.flush-cache.patch +Patch384: qemu-xen-upstream-blkif-discard.patch +Patch385: xen_pvonhvm.xen_emul_unplug.patch # Xend Patch400: xen.migrate.tools_set_migration_constraints_from_cmdline.patch Patch401: xen.migrate.tools_add_xm_migrate_--log_progress_option.patch @@ -234,34 +261,37 @@ Patch404: xend-config.patch Patch405: xend-max-free-mem.patch Patch406: xend-hvm-default-pae.patch -Patch407: xend-xenapi-console-protocol.patch -Patch408: xend-core-dump-loc.patch -Patch409: xend-xen-api-auth.patch -Patch410: xend-checkpoint-rename.patch -Patch411: xend-xm-save-check-file.patch -Patch412: xend-xm-create-xflag.patch -Patch413: xend-domu-usb-controller.patch -Patch414: xend-devid-or-name.patch -Patch415: xend-migration-domname-fix.patch -Patch416: xend-del_usb_xend_entry.patch -Patch417: xend-xen-domUloader.patch -Patch418: xend-multi-xvdp.patch -Patch419: xend-check_device_status.patch -Patch420: xend-change_home_server.patch -Patch421: xend-minimum-restart-time.patch -Patch422: xend-disable-internal-logrotate.patch -Patch423: xend-console-port-restore.patch -Patch424: xend-vcpu-affinity-fix.patch -Patch425: xend-migration-bridge-check.patch -Patch426: xend-managed-pci-device.patch -Patch427: xend-hvm-firmware-passthrough.patch -Patch428: xend-cpuinfo-model-name.patch -Patch429: xend-xm-reboot-fix.patch -Patch430: xend-domain-lock.patch -Patch431: xend-domain-lock-sfex.patch -Patch432: xend-32on64-extra-mem.patch -Patch433: xend-hv_extid_compatibility.patch -Patch434: xend-xenpaging.autostart.patch +Patch407: xend-vif-route-ifup.patch +Patch408: xend-xenapi-console-protocol.patch +Patch409: xend-core-dump-loc.patch +Patch410: xend-xen-api-auth.patch +Patch411: xend-checkpoint-rename.patch +Patch412: xend-xm-save-check-file.patch +Patch413: xend-xm-create-xflag.patch +Patch414: xend-domu-usb-controller.patch +Patch415: xend-devid-or-name.patch +Patch416: xend-migration-domname-fix.patch +Patch417: xend-del_usb_xend_entry.patch +Patch418: xend-xen-domUloader.patch +Patch419: xend-multi-xvdp.patch +Patch420: xend-check_device_status.patch +Patch421: xend-change_home_server.patch +Patch422: xend-minimum-restart-time.patch +Patch423: xend-disable-internal-logrotate.patch +Patch424: xend-config-enable-dump-comment.patch +Patch425: xend-tools-watchdog-support.patch +Patch426: xend-console-port-restore.patch +Patch427: xend-vcpu-affinity-fix.patch +Patch428: xend-migration-bridge-check.patch +Patch429: xend-managed-pci-device.patch +Patch430: xend-hvm-firmware-passthrough.patch +Patch431: xend-cpuinfo-model-name.patch +Patch432: xend-xm-reboot-fix.patch +Patch433: xend-domain-lock.patch +Patch434: xend-domain-lock-sfex.patch +Patch435: xend-32on64-extra-mem.patch +Patch436: xend-hv_extid_compatibility.patch +Patch437: xend-xenpaging.autostart.patch # Other bug fixes or features Patch450: libxen_permissive.patch Patch451: xenconsole-no-multiple-connections.patch @@ -342,6 +372,8 @@ Ewan Mellor <e...@xensource.com> ... +%if %{?with_dom0_support}0 + %package libs Summary: Xen Virtualization: Libraries Group: System/Kernel @@ -398,6 +430,7 @@ %if %{?with_xend}0 +%if %suse_version > 1230 %package xend-tools Summary: Xen Virtualization: Control tools for domain 0 Group: System/Kernel @@ -422,6 +455,8 @@ In addition to this package you need to install kernel-xen, xen and xen-libs to use Xen. %endif +%endif +%endif %package tools-domU Summary: Xen Virtualization: Control tools for domain U @@ -479,6 +514,8 @@ %endif +%if %{?with_dom0_support}0 + %package doc-html Summary: Xen Virtualization: HTML documentation Group: Documentation/HTML @@ -496,7 +533,7 @@ Authors: -------- Ian Pratt <ian.pr...@cl.cam.ac.uk> - +%endif %prep %setup -q -n %xen_build_dir -a 1 -a 2 -a 3 -a 4 -a 5 -a 57 -a 20000 @@ -514,7 +551,6 @@ # Our platform specific patches %patch301 -p1 %patch302 -p1 -%patch303 -p1 %patch310 -p1 %patch311 -p1 %patch312 -p1 @@ -561,6 +597,8 @@ %patch381 -p1 %patch382 -p1 %patch383 -p1 +%patch384 -p1 +%patch385 -p1 # Xend %if %{?with_xend}0 %patch400 -p1 @@ -598,6 +636,9 @@ %patch432 -p1 %patch433 -p1 %patch434 -p1 +%patch435 -p1 +%patch436 -p1 +%patch437 -p1 %endif # Other bug fixes or features %patch450 -p1 @@ -661,8 +702,9 @@ --libdir=%{_libdir} \ --datadir=%{_datadir} \ --enable-blktap1 ${configure_flags} +%if %{?with_dom0_support}0 CFLAGS_SAVE=$CFLAGS -%ifnarch %arm aarch64 +%ifarch %ix86 x86_64 make -C xenalyze.hg CC="gcc -I../xen/include -DMAX_CPUS=%{max_cpus} ${RPM_OPT_FLAGS}" %{?_smp_mflags} -k %endif make -C tools/include/xen-foreign %{?_smp_mflags} @@ -671,6 +713,10 @@ %if %{?with_xend}0 make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD %endif +%else +make -C tools/include/xen-foreign %{?_smp_mflags} +make tools docs %{?_smp_mflags} +%endif %if %{?with_kmp}0 # PV driver modules export XL=/usr/src/linux @@ -690,6 +736,8 @@ %install export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS" +export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS" +export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS" # EFI %ifarch x86_64 %arm aarch64 make -C xen install \ @@ -755,11 +803,11 @@ for flavor in %flavors_to_build; do make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install \ M=$PWD/obj/$flavor - install -m644 %SOURCE27 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers-$flavor.conf done %endif # Stubdom +%if %{?with_dom0_support}0 %if %{?with_stubdom}0 # remove -fstack-protector flag for stubdom build section export EXTRA_CFLAGS_XEN_TOOLS=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g') @@ -932,6 +980,34 @@ # Create symlinks for keymaps %fdupes -s $RPM_BUILD_ROOT/%{_datadir} +%else +# !with_dom0_support + +# 32 bit hypervisor no longer supported. Remove dom0 tools. +rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc +rm -rf $RPM_BUILD_ROOT/%{_datadir}/man +rm -rf $RPM_BUILD_ROOT/%{_libdir}/fs +rm -rf $RPM_BUILD_ROOT/%{_libdir}/xen +rm -rf $RPM_BUILD_ROOT/%{_libdir}/python* +rm -rf $RPM_BUILD_ROOT/usr/sbin +rm -rf $RPM_BUILD_ROOT/etc/xen +rm -rf $RPM_BUILD_ROOT/%{_datadir}/qemu-xen +rm -rf $RPM_BUILD_ROOT/var +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/xl.sh +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/xen* +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/xen* +rm -f $RPM_BUILD_ROOT/%{_bindir}/*store* +rm -f $RPM_BUILD_ROOT/%{_bindir}/*trace* +rm -f $RPM_BUILD_ROOT/%{_bindir}/xenco* +rm -f $RPM_BUILD_ROOT/%{_bindir}/pygrub +rm -f $RPM_BUILD_ROOT/%{_bindir}/remus +rm -f $RPM_BUILD_ROOT/usr/etc/qemu/target-x86_64.conf +rm -f $RPM_BUILD_ROOT/usr/libexec/qemu-bridge-helper +rm -f $RPM_BUILD_ROOT/%{_libdir}/*.so.* +%endif + +%if %{?with_dom0_support}0 + %files -f xen.files.txt %defattr(-,root,root) /boot/xen-%{version}-%{release}.gz @@ -1128,7 +1204,9 @@ %{_mandir}/man8/*.8.gz %if %{?with_xend}0 +%if %suse_version > 1230 %files xend-tools +%endif %defattr(-,root,root) %ifnarch %arm aarch64 /etc/udev/rules.d/40-xend.rules @@ -1167,7 +1245,6 @@ /etc/xen/scripts/vm-monitor /etc/xen/scripts/set-lock %{_libdir}/python%{pyver}/site-packages/xen/remus/* -#%{_libdir}/python%{pyver}/site-packages/xen/sv/* %{_libdir}/python%{pyver}/site-packages/xen/util/* %{_libdir}/python%{pyver}/site-packages/xen/xend/* %{_libdir}/python%{pyver}/site-packages/xen/xm/* @@ -1179,6 +1256,8 @@ %{_mandir}/man1/xen-list.1.gz %endif %endif +# with_dom0_support +%endif %files tools-domU %defattr(-,root,root) @@ -1194,6 +1273,8 @@ %{_libdir}/*.so /usr/include/* +%if %{?with_dom0_support}0 + %files doc-html %defattr(-,root,root) %{_defaultdocdir}/xen/html @@ -1207,10 +1288,31 @@ %if %{?with_systemd}0 %{fillup_and_insserv -i -y -n xencommons xencommons} /bin/systemctl enable xencommons.service +%if %suse_version <= 1230 +%if %{?with_xend}0 +%{fillup_and_insserv -y -n xend xend} +/bin/systemctl enable xend.service +%endif +%endif %else %{fillup_and_insserv -y -n xencommons xencommons} +%if %suse_version <= 1230 +%if %{?with_xend}0 +# enable both xm (xend based) and xl (libxl based) +if /bin/ls /etc/init.d/rc3.d/S??xend > /dev/null 2>&1 ; then + if ! /bin/ls /etc/init.d/rc3.d/S??xencommons > /dev/null 2>&1 ; then + echo "postin %{name}-tools: Forcing insserv xencommons during package upgrade because xend was enabled." + echo "postin %{name}-tools: with xend" + fi + %{fillup_and_insserv -Y -n xencommons xencommons} +else + %{fillup_and_insserv -y -n xencommons xencommons} +fi +%{fillup_and_insserv -y -n xend xend} %endif -# +%endif +%endif + %ifnarch %arm aarch64 %if %{?with_systemd}0 %{fillup_and_insserv -i -y -n xendomains xendomains} @@ -1247,29 +1349,40 @@ fi %endif +%if %suse_version > 1230 +%if %{?with_xend}0 +%post xend-tools +%if %{?with_systemd}0 +%{fillup_and_insserv -i -y -n xend xend} +/bin/systemctl enable xend.service +%else +%{fillup_and_insserv -y -n xend xend} +%endif +%endif +%endif + %preun tools %if %{?with_systemd}0 if [ $1 -eq 0 ]; then /bin/systemctl disable xencommons.service /bin/systemctl disable xendomains.service +%if %suse_version <= 1230 +%if %{?with_xend}0 + /bin/systemctl disable xend.service +%endif +%endif fi %else %{stop_on_removal xendomains xencommons} -%endif - -%postun tools -%{insserv_cleanup} - -# Scripts only if creating the xend-tools package +%if %suse_version <= 1230 %if %{?with_xend}0 -%post xend-tools -%if %{?with_systemd}0 -%{fillup_and_insserv -i -y -n xend xend} -/bin/systemctl enable xend.service -%else -%{fillup_and_insserv -y -n xend xend} +%{stop_on_removal xend} +%endif +%endif %endif +%if %suse_version > 1230 +%if %{?with_xend}0 %preun xend-tools %if %{?with_systemd}0 if [ $1 -eq 0 ]; then @@ -1278,14 +1391,47 @@ %else %{stop_on_removal xend} %endif +%endif +%endif +%postun tools +%if %suse_version <= 1230 +%if %{?with_xend}0 +%{restart_on_update xend} +%endif +%endif +%{insserv_cleanup} +%ifnarch %arm aarch64 +%if %suse_version <= 1230 +%if %{?with_xend}0 +if [ -f /usr/bin/qemu-img-xen ]; then + rm /usr/bin/qemu-img-xen +fi +if [ -f /usr/bin/qemu-nbd-xen ]; then + rm /usr/bin/qemu-nbd-xen +fi +%endif +%endif +%endif + +%if %suse_version > 1230 +%if %{?with_xend}0 %postun xend-tools %{restart_on_update xend} %{insserv_cleanup} +if [ -f /usr/bin/qemu-img-xen ]; then + rm /usr/bin/qemu-img-xen +fi +if [ -f /usr/bin/qemu-nbd-xen ]; then + rm /usr/bin/qemu-nbd-xen +fi +%endif %endif %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig +%endif + %changelog ++++++ ioemu-disable-scsi.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:04.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:04.000000000 +0100 @@ -1,32 +1,13 @@ -Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +--- + tools/qemu-xen-traditional-dir-remote/hw/pci.c | 44 ++++++++++++++++ + tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 2 + tools/qemu-xen-traditional-dir-remote/qemu-xen.h | 1 + 3 files changed, 47 insertions(+) + +Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c =================================================================== ---- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c -+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c -@@ -359,6 +359,8 @@ static void platform_ioport_write(void * - case 4: - fprintf(logfile, "Disconnect IDE hard disk...\n"); - ide_unplug_harddisks(); -+ fprintf(logfile, "Disconnect SCSI hard disk...\n"); -+ pci_unplug_scsi(); - fprintf(logfile, "Disconnect netifs...\n"); - pci_unplug_netifs(); - fprintf(logfile, "Shutdown taps...\n"); -Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h -=================================================================== ---- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h -+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h -@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque); - #endif - - void pci_unplug_netifs(void); -+void pci_unplug_scsi(void); - void destroy_hvm_domain(void); - void unregister_iomem(target_phys_addr_t start); - -Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c -=================================================================== ---- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c -+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c +--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c ++++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c @@ -871,6 +871,50 @@ void pci_unplug_netifs(void) } } @@ -78,3 +59,28 @@ typedef struct { PCIDevice dev; PCIBus *bus; +Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +=================================================================== +--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c ++++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +@@ -364,6 +364,8 @@ static void suse_platform_ioport_write(v + * If it controlled just disk or just LAN, it would use 8 below. */ + fprintf(logfile, "Disconnect IDE hard disk...\n"); + ide_unplug_harddisks(); ++ fprintf(logfile, "Disconnect SCSI hard disk...\n"); ++ pci_unplug_scsi(); + fprintf(logfile, "Disconnect netifs...\n"); + pci_unplug_netifs(); + fprintf(logfile, "Shutdown taps...\n"); +Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h +=================================================================== +--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h ++++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h +@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque); + #endif + + void pci_unplug_netifs(void); ++void pci_unplug_scsi(void); + void destroy_hvm_domain(void); + void unregister_iomem(target_phys_addr_t start); + ++++++ ioemu-hvm-pv-support.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:04.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:04.000000000 +0100 @@ -1,7 +1,11 @@ -Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +--- + tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 46 ++++++++++++++++ + 1 file changed, 46 insertions(+) + +Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c =================================================================== ---- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c -+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c ++++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c @@ -30,6 +30,8 @@ #include "qemu-xen.h" #include "net.h" @@ -11,13 +15,13 @@ #include <assert.h> #include <xenguest.h> -@@ -335,11 +337,51 @@ static void xen_platform_ioport_writeb(v +@@ -335,8 +337,52 @@ static void xen_platform_ioport_writeb(v } } +static uint32_t ioport_base; + -+static void platform_ioport_write(void *opaque, uint32_t addr, uint32_t val) ++static void suse_platform_ioport_write(void *opaque, uint32_t addr, uint32_t val) +{ + DECLARE_DOMCTL; + int rc; @@ -27,6 +31,7 @@ + + switch (addr - ioport_base) { + case 0: ++ /* FIXME Unknown who makes use of this code! */ + fprintf(logfile, "Init hypercall page %x, addr %x.\n", val, addr); + domctl.domain = (domid_t)domid; + domctl.u.hypercall_init.gmfn = val; @@ -35,6 +40,10 @@ + fprintf(logfile, "result -> %d.\n", rc); + break; + case 4: ++ /* xen-kmp used this since xen-3.0.4, instead the official protocol from xen-3.3+ ++ * pre vmdp 1.7 made use of 4 and 8 depending on how vmdp was configured. ++ * If vmdp was to control both disk and LAN it would use 4. ++ * If it controlled just disk or just LAN, it would use 8 below. */ + fprintf(logfile, "Disconnect IDE hard disk...\n"); + ide_unplug_harddisks(); + fprintf(logfile, "Disconnect netifs...\n"); @@ -44,8 +53,8 @@ + fprintf(logfile, "Done.\n"); + break; + default: -+ fprintf(logfile, "Write to bad port %x (base %x) on evtchn device.\n", -+ addr, ioport_base); ++ fprintf(logfile, "Write %x to bad port %x (base %x) on evtchn device.\n", ++ val, addr, ioport_base); + break; + } +} @@ -54,12 +63,8 @@ { + ioport_base = addr; + -+ register_ioport_write(addr, 16, 4, platform_ioport_write, NULL); -+/* ++ register_ioport_write(addr, 16, 4, suse_platform_ioport_write, NULL); ++ PCIXenPlatformState *d = (PCIXenPlatformState *)pci_dev; register_ioport_write(addr, size, 1, xen_platform_ioport_writeb, d); register_ioport_read(addr, size, 1, xen_platform_ioport_readb, d); -+*/ - } - - static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr) ++++++ kmp_filelist ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:04.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:04.000000000 +0100 @@ -1,3 +1,2 @@ %defattr (-,root,root) /lib/modules/%2-%1 -/etc/modprobe.d/xen_pvdrivers-%1.conf ++++++ pvdrv_emulation_control.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:04.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:04.000000000 +0100 @@ -1,8 +1,12 @@ -Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +--- + tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c =================================================================== ---- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c -+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c -@@ -365,6 +365,19 @@ static void platform_ioport_write(void * +--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c ++++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c +@@ -370,6 +370,19 @@ static void suse_platform_ioport_write(v net_tap_shutdown_all(); fprintf(logfile, "Done.\n"); break; @@ -20,5 +24,5 @@ + } + break; default: - fprintf(logfile, "Write to bad port %x (base %x) on evtchn device.\n", - addr, ioport_base); + fprintf(logfile, "Write %x to bad port %x (base %x) on evtchn device.\n", + val, addr, ioport_base); ++++++ qemu-xen-dir-remote.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/xen/qemu-xen-dir-remote.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new/qemu-xen-dir-remote.tar.bz2 differ: char 11, line 1 ++++++ qemu-xen-traditional-dir-remote.tar.bz2 ++++++ ++++++ qemu-xen-upstream-blkif-discard.patch ++++++ References: FATE#316071 Subject: [RFC] qemu-upstream: add discard support for xen_disk Implement discard support for xen_disk. It makes use of the existing discard code in qemu. The discard support is enabled unconditionally. But it would be worth to have a knob to disable it in case the backing file was intentionally created non-sparse to avoid fragmentation. How could this be knob be passed from domU.cfg:disk=[] to the actual qemu process? Perhaps introduce an option discard=on|off|ignore|unmap. Signed-off-by: Olaf Hering <o...@aepfle.de> --- tools/qemu-xen-dir-remote/hw/block/xen_blkif.h | 12 ++++++++ tools/qemu-xen-dir-remote/hw/block/xen_disk.c | 36 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) Index: xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h =================================================================== --- xen-4.4.0-testing.orig/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h +++ xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h @@ -79,6 +79,12 @@ static inline void blkif_get_x86_32_req( dst->handle = src->handle; dst->id = src->id; dst->sector_number = src->sector_number; + if (src->operation == BLKIF_OP_DISCARD) { + struct blkif_request_discard *s = (void *)src; + struct blkif_request_discard *d = (void *)dst; + d->nr_sectors = s->nr_sectors; + return; + } if (n > src->nr_segments) n = src->nr_segments; for (i = 0; i < n; i++) @@ -94,6 +100,12 @@ static inline void blkif_get_x86_64_req( dst->handle = src->handle; dst->id = src->id; dst->sector_number = src->sector_number; + if (src->operation == BLKIF_OP_DISCARD) { + struct blkif_request_discard *s = (void *)src; + struct blkif_request_discard *d = (void *)dst; + d->nr_sectors = s->nr_sectors; + return; + } if (n > src->nr_segments) n = src->nr_segments; for (i = 0; i < n; i++) Index: xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_disk.c =================================================================== --- xen-4.4.0-testing.orig/tools/qemu-xen-dir-remote/hw/block/xen_disk.c +++ xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_disk.c @@ -68,6 +68,8 @@ struct ioreq { int presync; int postsync; uint8_t mapped; + int64_t sector_num; + int nb_sectors; /* grant mapping */ uint32_t domids[BLKIF_MAX_SEGMENTS_PER_REQUEST]; @@ -114,6 +116,7 @@ struct XenBlkDev { int requests_finished; /* Persistent grants extension */ + gboolean feature_discard; gboolean feature_persistent; GTree *persistent_gnts; unsigned int persistent_gnt_count; @@ -232,6 +235,7 @@ static void ioreq_release(struct ioreq * static int ioreq_parse(struct ioreq *ioreq) { struct XenBlkDev *blkdev = ioreq->blkdev; + struct blkif_request_discard *discard_req = (void *)&ioreq->req; uintptr_t mem; size_t len; int i; @@ -244,6 +248,10 @@ static int ioreq_parse(struct ioreq *ior case BLKIF_OP_READ: ioreq->prot = PROT_WRITE; /* to memory */ break; + case BLKIF_OP_DISCARD: + ioreq->sector_num = discard_req->sector_number; + ioreq->nb_sectors = discard_req->nr_sectors; + return 0; case BLKIF_OP_FLUSH_DISKCACHE: ioreq->presync = 1; if (!ioreq->req.nr_segments) { @@ -521,6 +529,13 @@ static int ioreq_runio_qemu_aio(struct i &ioreq->v, ioreq->v.size / BLOCK_SIZE, qemu_aio_complete, ioreq); break; + case BLKIF_OP_DISCARD: + bdrv_acct_start(blkdev->bs, &ioreq->acct, ioreq->nb_sectors * BLOCK_SIZE, BDRV_ACCT_WRITE); + ioreq->aio_inflight++; + bdrv_aio_discard(blkdev->bs, + ioreq->sector_num, ioreq->nb_sectors, + qemu_aio_complete, ioreq); + break; default: /* unknown operation (shouldn't happen -- parse catches this) */ goto err; @@ -699,6 +714,23 @@ static void blk_alloc(struct XenDevice * } } +static void blk_parse_discard(struct XenBlkDev *blkdev) +{ + int flags = BDRV_O_UNMAP; +#if 0 + char *s = xenstore_read_be_str(&blkdev->xendev, "toolstack-options-discard"); + + if (s && bdrv_parse_discard_flags(s, &flags) < 0) { + xen_be_printf(xendev, 0, "property toolstack-discard-options failed to parse: %s\n", s); + return; + } +#endif + blkdev->feature_discard = !!(flags & BDRV_O_UNMAP); + if (!blkdev->feature_discard) + return; + xenstore_write_be_int(&blkdev->xendev, "feature-discard", 1); +} + static int blk_init(struct XenDevice *xendev) { struct XenBlkDev *blkdev = container_of(xendev, struct XenBlkDev, xendev); @@ -766,6 +798,8 @@ static int blk_init(struct XenDevice *xe xenstore_write_be_int(&blkdev->xendev, "feature-persistent", 1); xenstore_write_be_int(&blkdev->xendev, "info", info); + blk_parse_discard(blkdev); + g_free(directiosafe); return 0; @@ -801,6 +835,8 @@ static int blk_connect(struct XenDevice qflags |= BDRV_O_RDWR; readonly = false; } + if (blkdev->feature_discard) + qflags |= BDRV_O_UNMAP; /* init qemu block driver */ index = (blkdev->xendev.dev - 202 * 256) / 16; ++++++ seabios-dir-remote.tar.bz2 ++++++ ++++++ xen-4.4.0-testing-src.tar.bz2 ++++++ ++++ 5424 lines of diff (skipped) ++++++ xen_pvonhvm.xen_emul_unplug.patch ++++++ fate#311487 Handle xen_emul_unplug from xenlinux based core kernel. If the kernel was booted with xen_emul_unplug=(never|ide-disks|nics) unplug only what was requested. Kernel cmdline option is prefered over module option. --- unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) Index: xen-4.4.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c =================================================================== --- xen-4.4.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +++ xen-4.4.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c @@ -39,6 +39,9 @@ #include <xen/interface/hvm/params.h> #include <xen/features.h> #include <xen/evtchn.h> +#ifdef HAVE_XEN_PVONHVM_UNPLUG +#include <xen/xen_pvonhvm.h> +#endif #ifdef __ia64__ #include <asm/xen/xencomm.h> #endif @@ -290,6 +293,18 @@ static int check_platform_magic(struct d short magic, unplug = 0; char protocol, *p, *q, *err; +#ifdef HAVE_XEN_PVONHVM_UNPLUG + if (xen_pvonhvm_unplug) { + /* Use kernel cmdline setting */ + if (dev_unplug) + printk(KERN_INFO DRV_NAME ": ignoring option dev_unplug=%s \n", dev_unplug); + dev_unplug = NULL; + if (xen_pvonhvm_unplugged_disks) + unplug |= UNPLUG_ALL_IDE_DISKS | UNPLUG_AUX_IDE_DISKS; + if (xen_pvonhvm_unplugged_nics) + unplug |= UNPLUG_ALL_NICS; + } else +#endif /* Unconditionally unplug everything */ if (!dev_unplug) unplug = UNPLUG_ALL; ++++++ xend-config-enable-dump-comment.patch ++++++ bnc#684305 --- tools/examples/xend-config.sxp | 3 +++ 1 file changed, 3 insertions(+) Index: xen-4.2.0-testing/tools/examples/xend-config.sxp =================================================================== --- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp +++ xen-4.2.0-testing/tools/examples/xend-config.sxp @@ -250,6 +250,9 @@ (dom0-cpus 0) # Whether to enable core-dumps when domains crash. +# This setting overrides the per-domain dump value 'on_crash' and causes a +# core dump on all crashed domains. For finer grain control, it is best to +# disable this setting (which is default) and use the per-domain controls. #(enable-dump no) # The tool used for initiating virtual TPM migration ++++++ xend-domain-lock-sfex.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:09.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:09.000000000 +0100 @@ -2,7 +2,7 @@ =================================================================== --- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp +++ xen-4.4.0-testing/tools/examples/xend-config.sxp -@@ -334,7 +334,7 @@ +@@ -354,7 +354,7 @@ # path /<xend-domain-lock-path>/<vm-uuid> # Return 0 on success, non-zero on error. # @@ -11,7 +11,7 @@ # -s Lock status. If lock is acquired, print any contents # on stdout and return 0. Return non-zero if lock is # available. -@@ -360,6 +360,11 @@ +@@ -380,6 +380,11 @@ # #(xend-domain-lock-utility domain-lock) ++++++ xend-domain-lock.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:09.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:09.000000000 +0100 @@ -12,7 +12,7 @@ =================================================================== --- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp +++ xen-4.4.0-testing/tools/examples/xend-config.sxp -@@ -301,6 +301,65 @@ +@@ -321,6 +321,65 @@ # device assignment could really work properly even after we do this. #(pci-passthrough-strict-check yes) ++++++ xend-hv_extid_compatibility.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:09.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:09.000000000 +0100 @@ -10,7 +10,7 @@ 'rtc_timeoffset': int, 'parallel': str, 'serial': str, -@@ -520,6 +521,8 @@ class XendConfig(dict): +@@ -522,6 +523,8 @@ class XendConfig(dict): self['platform']['acpi_firmware'] = "" if 'timer_mode' not in self['platform']: self['platform']['timer_mode'] = 1 @@ -46,16 +46,16 @@ gopts.var('acpi', val='ACPI', fn=set_int, default=1, use="Disable or enable ACPI of HVM domain.") -@@ -1056,7 +1060,7 @@ def configure_hvm(config_image, vals): +@@ -1071,7 +1075,7 @@ def configure_hvm(config_image, vals): 'timer_mode', 'usb', 'usbdevice', 'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten', - 'vncunused', 'viridian', 'vpt_align', + 'vncunused', 'vpt_align', + 'watchdog', 'watchdog_action', 'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci', 'memory_sharing' ] - -@@ -1065,6 +1069,10 @@ def configure_hvm(config_image, vals): +@@ -1081,6 +1085,10 @@ def configure_hvm(config_image, vals): config_image.append([a, vals.__dict__[a]]) if vals.vncpasswd is not None: config_image.append(['vncpasswd', vals.vncpasswd]) ++++++ xend-hvm-firmware-passthrough.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:09.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:09.000000000 +0100 @@ -19,7 +19,7 @@ gopts.var('device_model', val='FILE', fn=set_value, default=None, use="Path to device model program.") -@@ -1033,6 +1041,7 @@ def configure_hvm(config_image, vals): +@@ -1048,6 +1056,7 @@ def configure_hvm(config_image, vals): 'boot', 'cpuid', 'cpuid_check', 'device_model', 'display', @@ -62,7 +62,7 @@ self.display = vmConfig['platform'].get('display') self.xauthority = vmConfig['platform'].get('xauthority') self.vncconsole = int(vmConfig['platform'].get('vncconsole', 0)) -@@ -943,6 +945,38 @@ class HVMImageHandler(ImageHandler): +@@ -945,6 +947,38 @@ class HVMImageHandler(ImageHandler): self.vm.getDomid() ]) return args @@ -101,7 +101,7 @@ def buildDomain(self): store_evtchn = self.vm.getStorePort() -@@ -958,6 +992,8 @@ class HVMImageHandler(ImageHandler): +@@ -960,6 +994,8 @@ class HVMImageHandler(ImageHandler): log.debug("vcpu_avail = %li", self.vm.getVCpuAvail()) log.debug("acpi = %d", self.acpi) log.debug("apic = %d", self.apic) @@ -110,7 +110,7 @@ rc = xc.hvm_build(domid = self.vm.getDomid(), image = self.loader, -@@ -966,7 +1002,9 @@ class HVMImageHandler(ImageHandler): +@@ -968,7 +1004,9 @@ class HVMImageHandler(ImageHandler): vcpus = self.vm.getVCpuCount(), vcpu_avail = self.vm.getVCpuAvail(), acpi = self.acpi, @@ -134,7 +134,7 @@ 'loader': str, 'display' : str, 'fda': str, -@@ -512,6 +514,10 @@ class XendConfig(dict): +@@ -514,6 +516,10 @@ class XendConfig(dict): self['platform']['nomigrate'] = 0 if self.is_hvm(): ++++++ xend-tools-watchdog-support.patch ++++++ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py =================================================================== --- xen-4.4.0-testing.orig/tools/python/xen/xm/create.py +++ xen-4.4.0-testing/tools/python/xen/xm/create.py @@ -517,6 +517,21 @@ gopts.var('usbdevice', val='NAME', fn=set_value, default='', use="Name of USB device to add?") +gopts.var('watchdog', val='NAME', + fn=set_value, default='', + use="Watchdog device to use. May be ib700 or i6300esb") + +gopts.var('watchdog_action', val='reset|shutdown|poweroff|pause|none|dump', + fn=set_value, default="reset", + use="""Action when watchdog timer expires: + - reset: Default, forcefully reset the guest; + - shutdown: Gracefully shutdown the guest (not recommended); + - poweroff: Forcefully power off the guest; + - pause: Pause the guest; + - none: Do nothing; + - dump: Automatically dump the guest; + """) + gopts.var('description', val='NAME', fn=set_value, default='', use="Description of a domain") @@ -1048,6 +1063,7 @@ def configure_hvm(config_image, vals): 'usb', 'usbdevice', 'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten', 'vncunused', 'viridian', 'vpt_align', + 'watchdog', 'watchdog_action', 'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci', 'memory_sharing' ] Index: xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py =================================================================== --- xen-4.4.0-testing.orig/tools/python/xen/xm/xenapi_create.py +++ xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py @@ -1074,7 +1074,9 @@ class sxp2xml: 'xen_platform_pci', 'tsc_mode' 'description', - 'nomigrate' + 'nomigrate', + 'watchdog', + 'watchdog_action' ] platform_configs = [] Index: xen-4.4.0-testing/tools/python/xen/xend/image.py =================================================================== --- xen-4.4.0-testing.orig/tools/python/xen/xend/image.py +++ xen-4.4.0-testing/tools/python/xen/xend/image.py @@ -855,7 +855,8 @@ class HVMImageHandler(ImageHandler): dmargs = [ 'boot', 'fda', 'fdb', 'soundhw', 'localtime', 'serial', 'stdvga', 'isa', - 'acpi', 'usb', 'usbdevice', 'gfx_passthru' ] + 'acpi', 'usb', 'usbdevice', 'gfx_passthru', + 'watchdog', 'watchdog_action' ] for a in dmargs: v = vmConfig['platform'].get(a) @@ -863,6 +864,7 @@ class HVMImageHandler(ImageHandler): # python doesn't allow '-' in variable names if a == 'stdvga': a = 'std-vga' if a == 'keymap': a = 'k' + if a == 'watchdog_action': a = 'watchdog-action' # Handle booleans gracefully if a in ['localtime', 'std-vga', 'isa', 'usb', 'acpi']: Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-4.4.0-testing.orig/tools/python/xen/xend/XendConfig.py +++ xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py @@ -192,6 +192,8 @@ XENAPI_PLATFORM_CFG_TYPES = { 'xen_platform_pci': int, "gfx_passthru": int, 'oos' : int, + 'watchdog': str, + 'watchdog_action': str, } # Xen API console 'other_config' keys. Index: xen-4.4.0-testing/tools/libxl/libxl_dm.c =================================================================== --- xen-4.4.0-testing.orig/tools/libxl/libxl_dm.c +++ xen-4.4.0-testing/tools/libxl/libxl_dm.c @@ -246,6 +246,12 @@ static char ** libxl__build_device_model } } } + if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) { + flexarray_append(dm_args, "-watchdog"); + if (b_info->u.hvm.watchdog_action) { + flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL); + } + } if (b_info->u.hvm.soundhw) { flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); } @@ -581,6 +587,12 @@ static char ** libxl__build_device_model return NULL; } } + if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) { + flexarray_append(dm_args, "-watchdog"); + if (b_info->u.hvm.watchdog_action) { + flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL); + } + } if (b_info->u.hvm.soundhw) { flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); } Index: xen-4.4.0-testing/tools/libxl/libxl_types.idl =================================================================== --- xen-4.4.0-testing.orig/tools/libxl/libxl_types.idl +++ xen-4.4.0-testing/tools/libxl/libxl_types.idl @@ -372,6 +372,8 @@ libxl_domain_build_info = Struct("domain ("xen_platform_pci", libxl_defbool), ("usbdevice_list", libxl_string_list), ("vendor_device", libxl_vendor_device), + ("watchdog", string), + ("watchdog_action", string), ])), ("pv", Struct(None, [("kernel", string), ("slack_memkb", MemKB), Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c =================================================================== --- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c +++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c @@ -1694,6 +1694,8 @@ skip_vfb: xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0); xlu_cfg_get_defbool(config, "xen_platform_pci", &b_info->u.hvm.xen_platform_pci, 0); + xlu_cfg_replace_string (config, "watchdog", &b_info->u.hvm.watchdog, 0); + xlu_cfg_replace_string (config, "watchdog_action", &b_info->u.hvm.watchdog_action, 0); if(b_info->u.hvm.vnc.listen && b_info->u.hvm.vnc.display ++++++ xend-vif-route-ifup.patch ++++++ --- tools/examples/xend-config.sxp | 20 ++++++++++++++++++++ tools/hotplug/Linux/Makefile | 2 +- tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) Index: xen-4.4.0-testing/tools/examples/xend-config.sxp =================================================================== --- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp +++ xen-4.4.0-testing/tools/examples/xend-config.sxp @@ -200,6 +200,26 @@ #(network-script network-route) #(vif-script vif-route) +# SuSE users note: +# If using a routed network configuration it is advised to NOT use +# network-route and vif-route scripts but instead use sysconfig scripts +# in dom0 and vif-route-ifup script to "connect" the domU vif to dom0. +# Since this configuration requires a vif sysconfig script in dom0, a static +# vif name must be used. E.g. in dom0 the vif sysconfig script +# (/etc/sysconfig/network/ifcfg-xen1.0) may contain +# +# NAME='XEN vm 1 virtual interface 0' +# BOOTPROTO='static' +# STARTMODE='hotplug' +# ... +# +# The corresponding domain vif configuration would contain e.g. +# vif=[ 'mac=00:16:3e:aa:bb:cc,script=vif-route-ifup,vifname=xen1.0', ] +# +# If the vif-route-ifup script will be used for all domains, it can be +# set here as the default vif script, alleviating the need for +# 'script=' in domain vif configuration. +#(vif-script vif-route-ifup) ## Use the following if network traffic is routed with NAT, as an alternative # to the settings for bridged networking given above. Index: xen-4.4.0-testing/tools/hotplug/Linux/Makefile =================================================================== --- xen-4.4.0-testing.orig/tools/hotplug/Linux/Makefile +++ xen-4.4.0-testing/tools/hotplug/Linux/Makefile @@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig. # Xen script dir and scripts to go there. XEN_SCRIPTS = network-bridge vif-bridge -XEN_SCRIPTS += network-route vif-route +XEN_SCRIPTS += network-route vif-route vif-route-ifup XEN_SCRIPTS += network-nat vif-nat XEN_SCRIPTS += vif-openvswitch XEN_SCRIPTS += vif2 Index: xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup =================================================================== --- /dev/null +++ xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup @@ -0,0 +1,34 @@ +#!/bin/bash +#============================================================================ +# /etc/xen/vif-route-ifup +# +# Script for configuring a vif in routed mode. +# The hotplugging system will call this script if it is specified either in +# the device configuration given to Xend, or the default Xend configuration +# in /etc/xen/xend-config.sxp. If the script is specified in neither of those +# places, then vif-bridge is the default. +# +# Usage: +# vif-route-ifup (add|remove|online|offline) +# +# Environment vars: +# dev vif interface name (required). +#============================================================================ + +dir=$(dirname "$0") +. "$dir/vif-common.sh" + +case "$command" in + online) + ifup ${dev} + ;; + offline) + do_without_error ifdown ${dev} + ;; +esac + +log debug "Successful vif-route-ifup $command for ${dev}." +if [ "$command" = "online" ] +then + success +fi ++++++ xend-xenpaging.autostart.patch ++++++ --- /var/tmp/diff_new_pack.lfjQxN/_old 2014-02-02 18:47:09.000000000 +0100 +++ /var/tmp/diff_new_pack.lfjQxN/_new 2014-02-02 18:47:09.000000000 +0100 @@ -107,7 +107,7 @@ 'smbios_firmware': str, 'acpi_firmware': str, 'loader': str, -@@ -515,6 +518,12 @@ class XendConfig(dict): +@@ -517,6 +520,12 @@ class XendConfig(dict): self['platform']['nomigrate'] = 0 if self.is_hvm(): @@ -348,7 +348,7 @@ gopts.var('device_model', val='FILE', fn=set_value, default=None, use="Path to device model program.") -@@ -1044,6 +1056,9 @@ def configure_hvm(config_image, vals): +@@ -1059,6 +1071,9 @@ def configure_hvm(config_image, vals): args = [ 'acpi', 'apic', 'boot', 'cpuid', 'cpuid_check', -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org