Hello community,
here is the log from the commit of package xen for openSUSE:Factory
checked in at Tue Mar 2 01:46:51 CET 2010.
--------
--- xen/xen.changes 2010-01-16 01:12:40.000000000 +0100
+++ /mounts/work_src_done/STABLE/xen/xen.changes 2010-03-01 16:05:43.000000000 +0100
@@ -1,0 +2,81 @@
+Mon Feb 22 08:26:01 MST 2010 - jfehlig@novell.com
+
+- bnc#556939 - Improve device map cleanup code in domUloader
+
+-------------------------------------------------------------------
+Sun Feb 21 21:34:23 MST 2010 - jfehlig@novell.com
+
+- bnc# 578910 - xm block-detach does not cleanup xenstore
+ hotplug-cleanup-fix.patch
+
+-------------------------------------------------------------------
+Fri Feb 19 11:56:57 MST 2010 - carnold@novell.com
+
+- bnc#579361 - Windows Server 2003 cannot wake up from stand by in
+ sp1
+ hibernate.patch
+
+-------------------------------------------------------------------
+Fri Feb 19 09:49:56 MST 2010 - carnold@novell.com
+
+- fate#308852: XEN CPU Pools
+ cpupools-core.patch
+ cpupools-core-fixup.patch
+ keyhandler-alternative.patch
+ cpu-pools-libxc.patch
+ cpu-pools-python.patch
+ cpu-pools-libxen.patch
+ cpu-pools-xmtest.patch
+ cpu-pools-docs.patch
+
+-------------------------------------------------------------------
+Thu Feb 18 15:18:59 - ksrinivasan@novell.com
+
+- bnc#558760: Disable scsi devices when PV drivers are loaded.
+
+-------------------------------------------------------------------
+Tue Feb 16 08:35:08 MST 2010 - carnold@novell.com
+
+- Update to changeset 20951 Xen 4.0.0 RC4 for sle11-sp1 beta5.
+
+-------------------------------------------------------------------
+Mon Feb 8 08:08:01 MST 2010 - carnold@novell.com
+
+- bnc#572146 - SLES11 SP1 beta 2 Xen - BUG: soft lockup - CPU#31
+ stuck for 61s! [kstop/31:4512]
+ cpuidle-hint-v3.patch
+
+-------------------------------------------------------------------
+Fri Feb 5 08:16:39 MST 2010 - carnold@novell.com
+
+- Update to changeset 20900 RC2+ for sle11-sp1 beta4.
+
+-------------------------------------------------------------------
+Fri Jan 29 09:22:46 MST 2010 - carnold@novell.com
+
+- bnc#573376 - OS reboot while create DomU with Windows CD
+
+-------------------------------------------------------------------
+Wed Jan 27 11:45:27 MST 2010 - carnold@novell.com
+
+- bnc#573881 - /usr/lib64/xen/bin/qemu-dm is a broken link
+
+-------------------------------------------------------------------
+Thu Jan 21 18:50:36 MST 2010 - carnold@novell.com
+
+- Update to changeset 20840 RC1+ for sle11-sp1 beta3.
+
+-------------------------------------------------------------------
+Thu Jan 21 10:41:59 MST 2010 - jfehlig@novell.com
+
+- bnc#569581 - SuSEfirewall2 should handle rules. Disable
+ handle_iptable in vif-bridge script
+ vif-bridge-no-iptables.patch
+
+-------------------------------------------------------------------
+Wed Jan 20 09:12:00 MST 2010 - carnold@novell.com
+
+- bnc#569577 - /etc/modprove.d/xen_pvdrivers, installed by
+ xen-kmp-default, to ../xen_pvdrivers.conf
+
+-------------------------------------------------------------------
@@ -130,0 +212 @@
+
@@ -135,10 +216,0 @@
-Mon Sep 28 08:28:24 MDT 2009 - carnold@novell.com
-
-- bnc#542525 - VUL-1: xen pygrub vulnerability
- 20099-pygrub-security.patch
- 20107-pygrub-security.patch
- 20146-pygrub-security.patch
- 20174-pygrub-security.patch
- 20201-pygrub-security.patch
-
--------------------------------------------------------------------
@@ -168 +240,21 @@
-Mon Aug 24 10:31:36 MDT 2009 - carnold@novell.com
+Wed Sep 2 10:12:18 MDT 2009 - carnold@novell.com
+
+- bnc#536176 - Xen panic when using iommu after updating hypervisor
+ 19380-vtd-feature-check.patch
+
+-------------------------------------------------------------------
+Fri Aug 28 09:54:08 MDT 2009 - jfehlig@novell.com
+
+- bnc#530959 - virsh autostart doesn't work
+ Fixing this libvirt bug also required fixing xend's op_pincpu
+ method with upstream c/s 19580
+ 19580-xend-pincpu.patch
+
+-------------------------------------------------------------------
+Fri Aug 28 08:05:17 MDT 2009 - jbeulich@novell.com
+
+- bnc#534146 - Xen: Fix SRAT check for discontig memory
+ 20120-x86-srat-check-discontig.patch
+
+-------------------------------------------------------------------
+Mon Aug 24 07:59:14 MDT 2009 - carnold@novell.com
@@ -171,9 +262,0 @@
- Patch for this bug plus additional upstream patches from Jan.
- 19614-x86-emul-lldt-ltr.patch
- 20026-ept-rwx-default.patch
- 20031-x86-pmode-load-seg-retry.patch
- 20035-x86-load-sreg-adjust.patch
- 20059-vmx-nmi-handling.patch
- 20077-x86-runstate-cswitch-out.patch
- 20078-x86_64-branch-emulation.patch
- 20101-hvm-no-compat-virt-start.patch
@@ -183 +266 @@
-Fri Aug 14 13:00:48 MDT 2009 - carnold@novell.com
+Tue Aug 11 01:08:51 CEST 2009 - ro@suse.de
@@ -185,2 +268,2 @@
-- Modify the mkbuildtree script so the KMPs will build.
- mkbuildtree.patch
+- disable module build for ec2 correctly to fix build
+ (at the suse_kernel_module_package macro)
@@ -195 +278 @@
-Fri Aug 7 10:43:32 MDT 2009 - jfehlig@novell.com
+Mon Aug 3 11:53:37 MDT 2009 - jfehlig@novell.com
@@ -198 +281 @@
- runs. Bug applies to xen 3.4.1 as well.
+ runs
@@ -202,6 +285 @@
-Thu Aug 6 10:10:43 MDT 2009 - carnold@novell.com
-
-- Update to Xen 3.4.1 FCS c/s 19718.
-
--------------------------------------------------------------------
-Tue Aug 4 15:48:59 MDT 2009 - carnold@novell.com
+Fri Jul 31 13:22:09 MDT 2009 - carnold@novell.com
@@ -209 +287,9 @@
-- Rename xen_loop to xen_loop.conf to conform with naming rules.
+- Upstream bugfixes from Jan.
+ 19896-32on64-arg-xlat.patch
+ 19960-show-page-walk.patch
+ 19945-pae-xen-l2-entries.patch
+ 19953-x86-fsgs-base.patch
+ 19931-gnttblop-preempt.patch
+ 19885-kexec-gdt-switch.patch
+ 19894-shadow-resync-fastpath-race.patch
+- hvperv shim patches no longer require being applied conditionally
@@ -212 +298 @@
-Tue Jul 28 14:07:42 MDT 2009 - carnold@novell.com
+Wed Jul 29 08:47:50 MDT 2009 - jfehlig@novell.com
@@ -214 +300,8 @@
-- Update to Xen 3.4.1 RC10 c/s 19711.
+- bnc#520234 - npiv does not work with XEN in SLE11
+ Update block-npiv
+- bnc#496033 - Support for creating NPIV ports without starting vm
+ block-npiv-common.sh
+ block-npiv-vport
+ Update block-npiv
+- bnc#500043 - Fix access to NPIV disk from HVM vm
+ Update xen-qemu-iscsi-fix.patch
@@ -217 +310 @@
-Tue Jun 23 11:09:29 MDT 2009 - carnold@novell.com
+Wed Jul 15 11:52:31 MDT 2009 - carnold@novell.com
@@ -219 +312 @@
-- Update to Xen 3.4.1 RC4 c/s 19664.
+- Don't build the KMPs for the ec2 kernel.
@@ -222 +315 @@
-Tue Jun 16 09:28:51 MDT 2009 - carnold@novell.com
+Thu Jul 2 12:45:32 MDT 2009 - jfehlig@novell.com
@@ -224 +317,14 @@
-- Update to Xen 3.4.1 RC3 c/s 19657.
+- Upstream fixes from Jan Beulich
+ 19606-hvm-x2apic-cpuid.patch
+ 19734-vtd-gcmd-submit.patch
+ 19752-vtd-srtp-sirtp-flush.patch
+ 19753-vtd-reg-write-lock.patch
+ 19764-hvm-domain-lock-leak.patch
+ 19765-hvm-post-restore-vcpu-state.patch
+ 19767-hvm-port80-inhibit.patch
+ 19768-x86-dom0-stack-dump.patch
+ 19770-x86-amd-s3-resume.patch
+ 19801-x86-p2m-2mb-hap-only.patch
+ 19815-vtd-kill-correct-timer.patch
+- Patch from Jan Beulich to aid in debugging bnc#509911
++++ 243 more lines (skipped)
++++ between xen/xen.changes
++++ and /mounts/work_src_done/STABLE/xen/xen.changes
calling whatdependson for head-i586
New:
----
cpu-pools-docs.patch
cpu-pools-libxc.patch
cpu-pools-libxen.patch
cpu-pools-python.patch
cpu-pools-xmtest.patch
cpupools-core-fixup.patch
cpupools-core.patch
hibernate.patch
ioemu-disable-scsi.patch
keyhandler-alternative.patch
qemu-console-retry.patch
shadow.patch
vif-bridge-no-iptables.patch
xen-gcc45-fixes.patch
xen_pvdrivers.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:16.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:16.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package xen (Version 4.0.0_20809_01)
+# spec file for package xen (Version 4.0.0_20978_01)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -22,10 +22,10 @@
ExclusiveArch: %ix86 x86_64
%define xvers 4.0
%define xvermaj 4
-%define changeset 20809
+%define changeset 20978
%define xen_build_dir xen-4.0.0-testing
-%define with_kmp 1
-BuildRequires: LibVNCServer-devel SDL-devel automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
+%define with_kmp 0
+BuildRequires: LibVNCServer-devel SDL-devel acpica automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
%if %suse_version >= 1030
BuildRequires: texlive texlive-latex
%else
@@ -37,7 +37,7 @@
%if %{?with_kmp}0
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
%endif
-Version: 4.0.0_20809_01
+Version: 4.0.0_20978_01
Release: 1
License: GPLv2
Group: System/Kernel
@@ -63,7 +63,7 @@
Source17: xend-relocation.sh
Source18: init.xen_loop
%if %{?with_kmp}0
-Source19: xen_pvdrivers
+Source19: xen_pvdrivers.conf
Source20: kmp_filelist
%endif
Source21: block-dmmd
@@ -119,10 +119,21 @@
Patch355: tools-gdbserver-build.diff
Patch356: ioemu-vnc-resize.patch
Patch357: ioemu-debuginfo.patch
+Patch358: vif-bridge-no-iptables.patch
+Patch359: qemu-console-retry.patch
# Needs to go upstream
Patch360: checkpoint-rename.patch
Patch361: xm-save-check-file.patch
Patch362: xm-create-xflag.patch
+Patch363: cpupools-core.patch
+Patch364: cpupools-core-fixup.patch
+Patch365: keyhandler-alternative.patch
+Patch366: cpu-pools-libxc.patch
+Patch367: cpu-pools-python.patch
+Patch368: cpu-pools-libxen.patch
+Patch369: cpu-pools-xmtest.patch
+Patch370: cpu-pools-docs.patch
+Patch371: xen-gcc45-fixes.patch
# Patches for snapshot support
Patch400: snapshot-ioemu-save.patch
Patch401: snapshot-ioemu-restore.patch
@@ -144,6 +155,8 @@
Patch425: ioemu-bdrv-open-CACHE_WB.patch
Patch426: xen-ioemu-hvm-pv-support.diff
Patch427: qemu-dm-segfault.patch
+Patch428: shadow.patch
+Patch429: hibernate.patch
# Jim's domain lock patch
Patch450: xend-domain-lock.patch
# Hypervisor and PV driver Patches
@@ -162,6 +175,7 @@
Patch512: supported_module.diff
Patch513: magic_ioport_compat.patch
Patch650: disable_emulated_device.diff
+Patch651: ioemu-disable-scsi.patch
# novell_shim patches
Patch700: hv_tools.patch
Patch701: hv_xen_base.patch
@@ -546,11 +560,22 @@
%patch355 -p1
%patch356 -p1
%patch357 -p1
+%patch358 -p1
+%patch359 -p1
%patch360 -p1
%patch361 -p1
%patch362 -p1
+%patch363 -p1
+%patch364 -p1
+%patch365 -p1
+%patch366 -p1
+%patch367 -p1
+%patch368 -p1
+%patch369 -p1
+%patch370 -p1
+%patch371 -p1
%patch400 -p1
-#%patch401 -p1
+%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch410 -p1
@@ -567,6 +592,8 @@
%patch425 -p1
%patch426 -p1
%patch427 -p1
+%patch428 -p1
+%patch429 -p1
%patch450 -p1
%patch500 -p1
%patch501 -p1
@@ -583,6 +610,7 @@
%patch512 -p1
%patch513 -p1
%patch650 -p1
+%patch651 -p1
%patch700 -p1
%patch701 -p1
%patch702 -p1
@@ -669,8 +697,8 @@
make -C tools/misc/serial-split install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
%ifarch x86_64
-mkdir -p $RPM_BUILD_ROOT/usr/lib64/xen/bin/
-ln -s %{_libdir}/xen/bin/qemu-dm $RPM_BUILD_ROOT/usr/lib64/xen/bin/qemu-dm
+mkdir -p $RPM_BUILD_ROOT/${_libdir}/xen/bin/
+ln -s /usr/lib/xen/bin/qemu-dm $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm
%endif
%if %{?with_kmp}0
# pv driver modules
@@ -681,7 +709,7 @@
M=$PWD/obj/$flavor
done
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
-install -m644 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers
+install -m644 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers.conf
%endif
# docs
make -C docs install \
@@ -756,8 +784,13 @@
rm -f $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/*.egg-info
rm -rf $RPM_BUILD_ROOT/html
rm -rf $RPM_BUILD_ROOT/usr/share/doc/xen/README.*
-rm -f $RPM_BUILD_ROOT/usr/share/create.dtd
+rm -f $RPM_BUILD_ROOT/usr/share/xen/create.dtd
rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug
+rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-img-xen
+rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-nbd-xen
+# FATE feature for remus rejected
+rm -f $RPM_BUILD_ROOT/%{_bindir}/remus
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/python%{pyver}/site-packages/xen/remus
# This is necessary because of the build of libconfig for libxl
#rm -rf $RPM_BUILD_ROOT/$RPM_BUILD_ROOT
@@ -792,11 +825,11 @@
/usr/bin/xenstore*
/usr/bin/xentrace*
/usr/bin/pygrub
-/usr/bin/qemu-img-xen
-/usr/bin/qemu-nbd-xen
+#/usr/bin/qemu-img-xen
+#/usr/bin/qemu-nbd-xen
/usr/bin/tapdisk-ioemu
/usr/bin/gdbserver-xen
-/usr/bin/remus
+#/usr/bin/remus
/usr/sbin/blktapctrl
/usr/sbin/flask-loadpolicy
/usr/sbin/flask-getenforce
@@ -927,7 +960,6 @@
%{_libdir}/libvhd.so
/usr/bin/serial-split
/usr/include/blktaplib.h
-/usr/include/flask.h
/usr/include/fsimage*
/usr/include/xen*.h
/usr/include/xen/
@@ -949,6 +981,18 @@
%post tools
%{fillup_and_insserv -y -n xend xend}
%{fillup_and_insserv -y -n xendomains xendomains}
+if [ -f /usr/bin/qemu-img ]; then
+ if [ -f /usr/bin/qemu-img-xen ]; then
+ rm /usr/bin/qemu-img-xen
+ fi
+ ln -s /usr/bin/qemu-img /usr/bin/qemu-img-xen
+fi
+if [ -f /usr/bin/qemu-nbd ]; then
+ if [ -f /usr/bin/qemu-nbd-xen ]; then
+ rm /usr/bin/qemu-nbd-xen
+ fi
+ ln -s /usr/bin/qemu-nbd /usr/bin/qemu-nbd-xen
+fi
%preun tools
%{stop_on_removal xendomains xend}
@@ -956,6 +1000,12 @@
%postun 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
%post libs
/sbin/ldconfig
++++++ 32on64-extra-mem.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:16.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:16.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -2863,7 +2863,7 @@ class XendDomainInfo:
+@@ -2902,7 +2902,7 @@ class XendDomainInfo:
self.guest_bitsize = self.image.getBitSize()
# Make sure there's enough RAM available for the domain
++++++ README.SuSE ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -31,6 +31,7 @@
vm-install (Optional, to install VMs)
python-gtk (Optional, to install VMs graphically)
virt-manager (Optional, to manage VMs graphically)
+ virt-viewer (Optional, to view VMs outside virt-manager)
tightvnc (Optional, to view VMs outside virt-manager)
Additional packages:
@@ -328,7 +329,7 @@
Networking
----------
-Your virtual machines become much more useful if your can reach them via the
+Your virtual machines become much more useful if you can reach them via the
network. Starting with openSUSE11.1 and SLE11, networking in domain 0 is
configured and managed via YaST. The yast2-networking module can be used
to create and manage bridged networks. During initial installation, a bridged
++++++ bdrv_open2_flags_2.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_blktap.c
-@@ -225,6 +225,7 @@ static int open_disk(struct td_state *s,
+@@ -227,6 +227,7 @@ static int open_disk(struct td_state *s,
BlockDriver* drv;
char* devname;
static int devnumber = 0;
@@ -10,7 +10,7 @@
int i;
DPRINTF("Opening %s as blktap%d\n", path, devnumber);
-@@ -247,7 +248,7 @@ static int open_disk(struct td_state *s,
+@@ -249,7 +250,7 @@ static int open_disk(struct td_state *s,
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
/* Open the image */
@@ -23,7 +23,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -133,7 +133,8 @@ static void insert_media(void *opaque)
+@@ -136,7 +136,8 @@ static void insert_media(void *opaque)
else
format = &bdrv_raw;
@@ -33,7 +33,7 @@
#ifdef CONFIG_STUBDOM
{
char *buf, *backend, *params_path, *params;
-@@ -397,9 +398,9 @@ void xenstore_parse_domain_config(int hv
+@@ -400,9 +401,9 @@ void xenstore_parse_domain_config(int hv
{
char **e_danger = NULL;
char *buf = NULL;
@@ -45,7 +45,7 @@
unsigned int len, num, hd_index, pci_devid = 0;
BlockDriverState *bs;
BlockDriver *format;
-@@ -461,7 +462,8 @@ void xenstore_parse_domain_config(int hv
+@@ -464,7 +465,8 @@ void xenstore_parse_domain_config(int hv
}
for (i = 0; i < num; i++) {
@@ -55,8 +55,8 @@
/* read the backend path */
xenstore_get_backend_path(&bpath, "vbd", danger_path, hvm_domid, e_danger[i]);
if (bpath == NULL)
-@@ -560,6 +562,17 @@ void xenstore_parse_domain_config(int hv
- }
+@@ -550,6 +552,17 @@ void xenstore_parse_domain_config(int hv
+ format = &bdrv_raw;
}
+ /* read the mode of the device */
@@ -73,7 +73,7 @@
#if 0
/* Phantom VBDs are disabled because the use of paths
* from guest-controlled areas in xenstore is unsafe.
-@@ -612,7 +625,7 @@ void xenstore_parse_domain_config(int hv
+@@ -617,7 +630,7 @@ void xenstore_parse_domain_config(int hv
#ifdef CONFIG_STUBDOM
if (pasprintf(&danger_buf, "%s/device/vbd/%s", danger_path, e_danger[i]) == -1)
continue;
@@ -82,12 +82,12 @@
pstrcpy(bs->filename, sizeof(bs->filename), params);
}
#else
-@@ -641,7 +654,7 @@ void xenstore_parse_domain_config(int hv
+@@ -646,7 +659,7 @@ void xenstore_parse_domain_config(int hv
}
}
pstrcpy(bs->filename, sizeof(bs->filename), params);
-- if (bdrv_open2(bs, params, BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0)
-+ if (bdrv_open2(bs, params, flags|BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0)
+- if (bdrv_open2(bs, params, BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0) {
++ if (bdrv_open2(bs, params, flags|BDRV_O_CACHE_WB /* snapshot and write-back */, format) < 0) {
fprintf(stderr, "qemu: could not open vbd '%s' or hard disk image '%s' (drv '%s' format '%s')\n", buf, params, drv ? drv : "?", format ? format->format_name : "0");
- }
-
+ } else {
+ char* snapshot = get_snapshot_name(atoi(e_danger[i]));
++++++ blktap-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -741,7 +741,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/blktap/lib/blktaplib.h
+++ xen-4.0.0-testing/tools/blktap/lib/blktaplib.h
-@@ -219,6 +219,7 @@ typedef struct msg_pid {
+@@ -220,6 +220,7 @@ typedef struct msg_pid {
#define DISK_TYPE_RAM 3
#define DISK_TYPE_QCOW 4
#define DISK_TYPE_QCOW2 5
++++++ blktap.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -5,7 +5,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3262,7 +3262,7 @@ class XendDomainInfo:
+@@ -3286,7 +3286,7 @@ class XendDomainInfo:
(fn, BOOTLOADER_LOOPBACK_DEVICE))
vbd = {
@@ -18,7 +18,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -396,9 +396,9 @@ void xenstore_parse_domain_config(int hv
+@@ -397,9 +397,9 @@ void xenstore_parse_domain_config(int hv
{
char **e_danger = NULL;
char *buf = NULL;
@@ -30,7 +30,7 @@
unsigned int len, num, hd_index, pci_devid = 0;
BlockDriverState *bs;
BlockDriver *format;
-@@ -438,6 +438,14 @@ void xenstore_parse_domain_config(int hv
+@@ -439,6 +439,14 @@ void xenstore_parse_domain_config(int hv
e_danger[i]);
if (bpath == NULL)
continue;
@@ -45,7 +45,7 @@
/* read the name of the device */
if (pasprintf(&buf, "%s/dev", bpath) == -1)
continue;
-@@ -712,6 +720,7 @@ void xenstore_parse_domain_config(int hv
+@@ -715,6 +723,7 @@ void xenstore_parse_domain_config(int hv
free(danger_type);
free(params);
free(dev);
++++++ cdrom-removable.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -1,7 +1,5 @@
-Index: xen-4.0.0-testing/tools/python/xen/xend/server/HalDaemon.py
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/tools/python/xen/xend/server/HalDaemon.py
++++ b/tools/python/xen/xend/server/HalDaemon.py
@@ -0,0 +1,243 @@
+#!/usr/bin/env python
+# -*- mode: python; -*-
@@ -246,10 +244,8 @@
+ print 'Falling off end'
+
+
-Index: xen-4.0.0-testing/tools/python/xen/xend/server/Hald.py
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/tools/python/xen/xend/server/Hald.py
++++ b/tools/python/xen/xend/server/Hald.py
@@ -0,0 +1,125 @@
+#============================================================================
+# This library is free software; you can redistribute it and/or
@@ -376,10 +372,8 @@
+ watcher.run()
+ time.sleep(10)
+ watcher.shutdown()
-Index: xen-4.0.0-testing/tools/python/xen/xend/server/SrvServer.py
-===================================================================
---- xen-4.0.0-testing.orig/tools/python/xen/xend/server/SrvServer.py
-+++ xen-4.0.0-testing/tools/python/xen/xend/server/SrvServer.py
+--- a/tools/python/xen/xend/server/SrvServer.py
++++ b/tools/python/xen/xend/server/SrvServer.py
@@ -56,6 +56,7 @@ from xen.web.SrvDir import SrvDir
from SrvRoot import SrvRoot
@@ -397,15 +391,22 @@
def create():
root = SrvDir()
-Index: xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-===================================================================
---- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
-+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -513,6 +513,19 @@ void xenstore_parse_domain_config(int hv
- params = newparams;
- format = &bdrv_raw;
- }
-+ /* if cdrom pyhsical put a watch on media-present */
+--- a/tools/ioemu-remote/xenstore.c
++++ b/tools/ioemu-remote/xenstore.c
+@@ -18,6 +18,7 @@
+ #include "exec-all.h"
+ #include "sysemu.h"
+
++#include "console.h"
+ #include "hw.h"
+ #include "pci.h"
+ #include "qemu-timer.h"
+@@ -548,6 +549,21 @@ void xenstore_parse_domain_config(int hv
+ #endif
+
+ bs = bdrv_new(dev);
++
++ /* if cdrom physical put a watch on media-present */
+ if (bdrv_get_type_hint(bs) == BDRV_TYPE_CDROM) {
+ if (drv && !strcmp(drv, "phy")) {
+ if (pasprintf(&buf, "%s/media-present", bpath) != -1) {
@@ -418,14 +419,15 @@
+ }
+ }
+ }
-
- #if 0
- /* Phantom VBDs are disabled because the use of paths
-@@ -938,6 +951,50 @@ void xenstore_record_dm_state(const char
++
+ /* check if it is a cdrom */
+ if (danger_type && !strcmp(danger_type, "cdrom")) {
+ bdrv_set_type_hint(bs, BDRV_TYPE_CDROM);
+@@ -938,6 +954,50 @@ void xenstore_record_dm_state(const char
xenstore_record_dm("state", state);
}
-+void xenstore_process_media_change_event(char **vec)
++static void xenstore_process_media_change_event(char **vec)
+{
+ char *media_present = NULL;
+ unsigned int len;
@@ -472,7 +474,7 @@
void xenstore_process_event(void *opaque)
{
char **vec, *offset, *bpath = NULL, *buf = NULL, *drv = NULL, *image = NULL;
-@@ -968,6 +1025,11 @@ void xenstore_process_event(void *opaque
+@@ -968,6 +1028,11 @@ void xenstore_process_event(void *opaque
xenstore_watch_callbacks[i].cb(vec[XS_WATCH_TOKEN],
xenstore_watch_callbacks[i].opaque);
++++++ cpu-pools-docs.patch ++++++
++++ 1484 lines (skipped)
++++++ cpu-pools-libxc.patch ++++++
Index: xen-4.0.0-testing/tools/libxc/Makefile
===================================================================
--- xen-4.0.0-testing.orig/tools/libxc/Makefile
+++ xen-4.0.0-testing/tools/libxc/Makefile
@@ -8,6 +8,7 @@ CTRL_SRCS-y :=
CTRL_SRCS-y += xc_core.c
CTRL_SRCS-$(CONFIG_X86) += xc_core_x86.c
CTRL_SRCS-$(CONFIG_IA64) += xc_core_ia64.c
+CTRL_SRCS-y += xc_cpupool.c
CTRL_SRCS-y += xc_domain.c
CTRL_SRCS-y += xc_evtchn.c
CTRL_SRCS-y += xc_misc.c
Index: xen-4.0.0-testing/tools/libxc/xc_cpupool.c
===================================================================
--- /dev/null
+++ xen-4.0.0-testing/tools/libxc/xc_cpupool.c
@@ -0,0 +1,154 @@
+/******************************************************************************
+ * xc_cpupool.c
+ *
+ * API for manipulating and obtaining information on cpupools.
+ *
+ * Copyright (c) 2009, J Gross.
+ */
+
+#include
+#include "xc_private.h"
+
+int xc_cpupool_create(int xc_handle,
+ uint32_t *ppoolid,
+ uint32_t sched_id)
+{
+ int err;
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_CREATE;
+ domctl.u.cpupool_op.cpupool_id = (*ppoolid == 0) ?
+ XEN_DOMCTL_CPUPOOL_PAR_ANY : *ppoolid;
+ domctl.u.cpupool_op.sched_id = sched_id;
+ if ( (err = do_domctl_save(xc_handle, &domctl)) != 0 )
+ return err;
+
+ *ppoolid = domctl.u.cpupool_op.cpupool_id;
+ return 0;
+}
+
+int xc_cpupool_destroy(int xc_handle,
+ uint32_t poolid)
+{
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_DESTROY;
+ domctl.u.cpupool_op.cpupool_id = poolid;
+ return do_domctl_save(xc_handle, &domctl);
+}
+
+int xc_cpupool_getinfo(int xc_handle,
+ uint32_t first_poolid,
+ uint32_t n_max,
+ xc_cpupoolinfo_t *info)
+{
+ int err = 0;
+ int p;
+ uint32_t poolid = first_poolid;
+ uint8_t local[sizeof (info->cpumap)];
+ DECLARE_DOMCTL;
+
+ memset(info, 0, n_max * sizeof(xc_cpupoolinfo_t));
+
+ for (p = 0; p < n_max; p++)
+ {
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_INFO;
+ domctl.u.cpupool_op.cpupool_id = poolid;
+ set_xen_guest_handle(domctl.u.cpupool_op.cpumap.bitmap, local);
+ domctl.u.cpupool_op.cpumap.nr_cpus = sizeof(info->cpumap) * 8;
+
+ if ( (err = lock_pages(local, sizeof(local))) != 0 )
+ {
+ PERROR("Could not lock memory for Xen hypercall");
+ break;
+ }
+ err = do_domctl_save(xc_handle, &domctl);
+ unlock_pages(local, sizeof (local));
+
+ if ( err < 0 )
+ break;
+
+ info->cpupool_id = domctl.u.cpupool_op.cpupool_id;
+ info->sched_id = domctl.u.cpupool_op.sched_id;
+ info->n_dom = domctl.u.cpupool_op.n_dom;
+ bitmap_byte_to_64(&(info->cpumap), local, sizeof(local) * 8);
+ poolid = domctl.u.cpupool_op.cpupool_id + 1;
+ info++;
+ }
+
+ if ( p == 0 )
+ return err;
+
+ return p;
+}
+
+int xc_cpupool_addcpu(int xc_handle,
+ uint32_t poolid,
+ int cpu)
+{
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_ADDCPU;
+ domctl.u.cpupool_op.cpupool_id = poolid;
+ domctl.u.cpupool_op.cpu = (cpu < 0) ? XEN_DOMCTL_CPUPOOL_PAR_ANY : cpu;
+ return do_domctl_save(xc_handle, &domctl);
+}
+
+int xc_cpupool_removecpu(int xc_handle,
+ uint32_t poolid,
+ int cpu)
+{
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_RMCPU;
+ domctl.u.cpupool_op.cpupool_id = poolid;
+ domctl.u.cpupool_op.cpu = (cpu < 0) ? XEN_DOMCTL_CPUPOOL_PAR_ANY : cpu;
+ return do_domctl_save(xc_handle, &domctl);
+}
+
+int xc_cpupool_movedomain(int xc_handle,
+ uint32_t poolid,
+ uint32_t domid)
+{
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_MOVEDOMAIN;
+ domctl.u.cpupool_op.cpupool_id = poolid;
+ domctl.u.cpupool_op.domid = domid;
+ return do_domctl_save(xc_handle, &domctl);
+}
+
+int xc_cpupool_freeinfo(int xc_handle,
+ uint64_t *cpumap)
+{
+ int err;
+ uint8_t local[sizeof (*cpumap)];
+ DECLARE_DOMCTL;
+
+ domctl.cmd = XEN_DOMCTL_cpupool_op;
+ domctl.u.cpupool_op.op = XEN_DOMCTL_CPUPOOL_OP_FREEINFO;
+ set_xen_guest_handle(domctl.u.cpupool_op.cpumap.bitmap, local);
+ domctl.u.cpupool_op.cpumap.nr_cpus = sizeof(*cpumap) * 8;
+
+ if ( (err = lock_pages(local, sizeof(local))) != 0 )
+ {
+ PERROR("Could not lock memory for Xen hypercall");
+ return err;
+ }
+
+ err = do_domctl_save(xc_handle, &domctl);
+ unlock_pages(local, sizeof (local));
+
+ if (err < 0)
+ return err;
+
+ bitmap_byte_to_64(cpumap, local, sizeof(local) * 8);
+
+ return 0;
+}
Index: xen-4.0.0-testing/tools/libxc/xc_domain.c
===================================================================
--- xen-4.0.0-testing.orig/tools/libxc/xc_domain.c
+++ xen-4.0.0-testing/tools/libxc/xc_domain.c
@@ -6,6 +6,7 @@
* Copyright (c) 2003, K A Fraser.
*/
+#include
#include "xc_private.h"
#include "xg_save_restore.h"
#include
@@ -15,15 +16,21 @@ int xc_domain_create(int xc_handle,
uint32_t ssidref,
xen_domain_handle_t handle,
uint32_t flags,
- uint32_t *pdomid)
+ uint32_t *pdomid, ...)
{
int err;
+ va_list ap;
DECLARE_DOMCTL;
domctl.cmd = XEN_DOMCTL_createdomain;
domctl.domain = (domid_t)*pdomid;
domctl.u.createdomain.ssidref = ssidref;
domctl.u.createdomain.flags = flags;
+ if ( flags & XEN_DOMCTL_CDF_pool ) {
+ va_start(ap, pdomid);
+ domctl.u.createdomain.cpupool = va_arg(ap, uint32_t);
+ va_end(ap);
+ }
memcpy(domctl.u.createdomain.handle, handle, sizeof(xen_domain_handle_t));
if ( (err = do_domctl(xc_handle, &domctl)) != 0 )
return err;
@@ -206,6 +213,7 @@ int xc_domain_getinfo(int xc_handle,
info->cpu_time = domctl.u.getdomaininfo.cpu_time;
info->nr_online_vcpus = domctl.u.getdomaininfo.nr_online_vcpus;
info->max_vcpu_id = domctl.u.getdomaininfo.max_vcpu_id;
+ info->cpupool = domctl.u.getdomaininfo.cpupool;
memcpy(info->handle, domctl.u.getdomaininfo.handle,
sizeof(xen_domain_handle_t));
Index: xen-4.0.0-testing/tools/libxc/xc_private.h
===================================================================
--- xen-4.0.0-testing.orig/tools/libxc/xc_private.h
+++ xen-4.0.0-testing/tools/libxc/xc_private.h
@@ -164,6 +164,19 @@ static inline int do_domctl(int xc_handl
return ret;
}
+static inline int do_domctl_save(int xc_handle, struct xen_domctl *domctl)
+{
+ int ret;
+
+ do
+ {
+ ret = do_domctl(xc_handle, domctl);
+ }
+ while ( (ret < 0 ) && (errno == EAGAIN) );
+
+ return ret;
+}
+
static inline int do_sysctl(int xc_handle, struct xen_sysctl *sysctl)
{
int ret = -1;
Index: xen-4.0.0-testing/tools/libxc/xenctrl.h
===================================================================
--- xen-4.0.0-testing.orig/tools/libxc/xenctrl.h
+++ xen-4.0.0-testing/tools/libxc/xenctrl.h
@@ -171,6 +171,7 @@ typedef struct xc_dominfo {
unsigned int nr_online_vcpus;
unsigned int max_vcpu_id;
xen_domain_handle_t handle;
+ unsigned int cpupool;
} xc_dominfo_t;
typedef xen_domctl_getdomaininfo_t xc_domaininfo_t;
@@ -207,7 +208,7 @@ int xc_domain_create(int xc_handle,
uint32_t ssidref,
xen_domain_handle_t handle,
uint32_t flags,
- uint32_t *pdomid);
+ uint32_t *pdomid, ...);
/* Functions to produce a dump of a given domain
@@ -500,6 +501,100 @@ int xc_domain_setdebugging(int xc_handle
unsigned int enable);
/*
+ * CPUPOOL MANAGEMENT FUNCTIONS
+ */
+
+typedef struct xc_cpupoolinfo {
+ uint32_t cpupool_id;
+ uint32_t sched_id;
+ uint32_t n_dom;
+ uint64_t cpumap;
+} xc_cpupoolinfo_t;
+
+/**
+ * Create a new cpupool.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm ppoolid pointer to the new cpupool id (in/out)
+ * @parm sched_id id of scheduler to use for pool
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_create(int xc_handle,
+ uint32_t *ppoolid,
+ uint32_t sched_id);
+
+/**
+ * Destroy a cpupool. Pool must be unused and have no cpu assigned.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm poolid id of the cpupool to destroy
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_destroy(int xc_handle,
+ uint32_t poolid);
+
+/**
+ * Get cpupool info. Returns info for up to the specified number of cpupools
+ * starting at the given id.
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm first_poolid lowest id for which info is returned
+ * @parm n_max maximum number of cpupools to return info
+ * @parm info pointer to xc_cpupoolinfo_t array
+ * return number of cpupool infos
+ */
+int xc_cpupool_getinfo(int xc_handle,
+ uint32_t first_poolid,
+ uint32_t n_max,
+ xc_cpupoolinfo_t *info);
+
+/**
+ * Add cpu to a cpupool. cpu may be -1 indicating the first unassigned.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm poolid id of the cpupool
+ * @parm cpu cpu number to add
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_addcpu(int xc_handle,
+ uint32_t poolid,
+ int cpu);
+
+/**
+ * Remove cpu from cpupool. cpu may be -1 indicating the last cpu of the pool.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm poolid id of the cpupool
+ * @parm cpu cpu number to remove
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_removecpu(int xc_handle,
+ uint32_t poolid,
+ int cpu);
+
+/**
+ * Move domain to another cpupool.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm poolid id of the destination cpupool
+ * @parm domid id of the domain to move
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_movedomain(int xc_handle,
+ uint32_t poolid,
+ uint32_t domid);
+
+/**
+ * Return map of cpus not in any cpupool.
+ *
+ * @parm xc_handle a handle to an open hypervisor interface
+ * @parm cpumap pointer where to store the cpumap
+ * return 0 on success, -1 on failure
+ */
+int xc_cpupool_freeinfo(int xc_handle,
+ uint64_t *cpumap);
+
+
+/*
* EVENT CHANNEL FUNCTIONS
*/
++++++ cpu-pools-libxen.patch ++++++
++++ 2180 lines (skipped)
++++++ cpu-pools-python.patch ++++++
++++ 2543 lines (skipped)
++++++ cpu-pools-xmtest.patch ++++++
++++ 838 lines (skipped)
++++++ cpupools-core-fixup.patch ++++++
- fix tasklet_schedule_cpu() when invoked from the tasklet's handler
- properly balance (un-)pausing in continue_hypercall_on_cpu() code
paths
- bump domctl interface version (due to the addition of the "cpupool"
member to struct xen_domctl_getdomaininfo)
- move and rename csched_priv to make sure eventual backported
upstream patches using the variable get correctly adjusted (i.e.
missing adjustments get detected at build time)
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
@@ -1573,6 +1573,7 @@ int continue_hypercall_on_cpu(int cpu, v
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
v->arch.continue_info = info;
+ vcpu_pause_nosync(v);
}
else
{
@@ -1583,7 +1584,6 @@ int continue_hypercall_on_cpu(int cpu, v
info->func = func;
info->data = data;
- vcpu_pause_nosync(v);
tasklet_schedule_cpu(&info->tasklet, cpu);
raise_softirq(SCHEDULE_SOFTIRQ);
Index: xen-4.0.0-testing/xen/common/sched_credit.c
===================================================================
--- xen-4.0.0-testing.orig/xen/common/sched_credit.c
+++ xen-4.0.0-testing/xen/common/sched_credit.c
@@ -176,7 +176,6 @@ struct csched_private {
/*
* Global variables
*/
-static struct csched_private csched_priv;
static struct csched_private *csched_priv0 = NULL;
static void csched_tick(void *_cpu);
@@ -1524,11 +1523,13 @@ static void csched_tick_resume(struct sc
}
}
+static struct csched_private _csched_priv;
+
struct scheduler sched_credit_def = {
.name = "SMP Credit Scheduler",
.opt_name = "credit",
.sched_id = XEN_SCHEDULER_CREDIT,
- .sched_data = &csched_priv,
+ .sched_data = &_csched_priv,
.init_domain = csched_dom_init,
.destroy_domain = csched_dom_destroy,
Index: xen-4.0.0-testing/xen/common/softirq.c
===================================================================
--- xen-4.0.0-testing.orig/xen/common/softirq.c
+++ xen-4.0.0-testing/xen/common/softirq.c
@@ -104,12 +104,15 @@ static void tasklet_schedule_list(struct
{
BUG_ON(!list_empty(&t->list));
list_add_tail(&t->list, tlist);
+ t->scheduled_on = NR_CPUS;
}
t->is_scheduled = 1;
if ( cpu == smp_processor_id() )
raise_softirq(TASKLET_SOFTIRQ);
- else
+ else if ( !t->is_running )
cpu_raise_softirq(cpu, TASKLET_SOFTIRQ);
+ else
+ t->scheduled_on = cpu;
}
spin_unlock_irqrestore(&tasklet_lock, flags);
@@ -156,7 +159,15 @@ static void tasklet_action(void)
if ( t->is_scheduled )
{
BUG_ON(t->is_dead || !list_empty(&t->list));
- list_add_tail(&t->list, tlist);
+ if ( t->scheduled_on >= NR_CPUS )
+ list_add_tail(&t->list, tlist);
+ else
+ {
+ unsigned int cpu = t->scheduled_on;
+
+ list_add_tail(&t->list, &per_cpu(tasklet_list_pcpu, cpu));
+ cpu_raise_softirq(cpu, TASKLET_SOFTIRQ);
+ }
}
/*
Index: xen-4.0.0-testing/xen/include/public/domctl.h
===================================================================
--- xen-4.0.0-testing.orig/xen/include/public/domctl.h
+++ xen-4.0.0-testing/xen/include/public/domctl.h
@@ -35,7 +35,7 @@
#include "xen.h"
#include "grant_table.h"
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000006
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000007
struct xenctl_cpumap {
XEN_GUEST_HANDLE_64(uint8) bitmap;
Index: xen-4.0.0-testing/xen/include/xen/softirq.h
===================================================================
--- xen-4.0.0-testing.orig/xen/include/xen/softirq.h
+++ xen-4.0.0-testing/xen/include/xen/softirq.h
@@ -50,12 +50,14 @@ struct tasklet
bool_t is_scheduled;
bool_t is_running;
bool_t is_dead;
+ unsigned int scheduled_on;
void (*func)(unsigned long);
unsigned long data;
};
#define DECLARE_TASKLET(name, func, data) \
- struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data }
+ struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, NR_CPUS, \
+ func, data }
void tasklet_schedule(struct tasklet *t);
void tasklet_schedule_cpu(struct tasklet *t, int cpu);
++++++ cpupools-core.patch ++++++
++++ 3267 lines (skipped)
++++++ disable_emulated_device.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-@@ -363,6 +363,11 @@ static int __devinit platform_pci_init(s
+@@ -401,6 +401,11 @@ static int __devinit platform_pci_init(s
platform_mmio = mmio_addr;
platform_mmiolen = mmio_len;
++++++ domUloader.py ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -235,6 +235,13 @@
os.system("lvchange -ay '%s' > /dev/null 2>&1" % (self.vdev))
self.mapped += 1
+ def partitionsdeactivated(self):
+ "Return True if partition mappings have been removed, False otherwise"
+ for part in self.partitions:
+ if os.access(part.pdev, os.F_OK):
+ return False
+ return True
+
def deactivatepartitions(self):
"""Remove device-mapper mappings and loop mapping.
@@ -246,9 +253,14 @@
self.mapped -= 1
if not self.mapped:
if self.pcount:
- verbose_print("kpartx %s -d '%s'" % (kpartx_args, self.physdev()))
- fd = os.popen("kpartx %s -d '%s'" % (kpartx_args, self.physdev()))
- fd.close()
+ retries = 10
+ while retries and not self.partitionsdeactivated():
+ verbose_print("kpartx %s -d '%s'" % (kpartx_args, self.physdev()))
+ os.system("kpartx %s -d '%s'" % (kpartx_args, self.physdev()))
+ time.sleep(0.1)
+ retries -= 1
+ if retries == 0:
+ error("unable to remove partition mappings with kpartx -d")
if self.pcount and self.lvm:
verbose_print("lvchange -an '%s'" % (self.vdev))
ret = os.system("lvchange -an '%s' > /dev/null 2>&1" % (self.vdev)) >> 8
++++++ dump-exec-state.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -1,5 +1,7 @@
---- 2010-01-06.orig/xen/arch/ia64/linux-xen/smp.c 2009-05-27 13:54:05.000000000 +0200
-+++ 2010-01-06/xen/arch/ia64/linux-xen/smp.c 2010-01-06 11:22:12.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/ia64/linux-xen/smp.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/ia64/linux-xen/smp.c
++++ xen-4.0.0-testing/xen/arch/ia64/linux-xen/smp.c
@@ -189,7 +189,7 @@ handle_IPI (int irq, void *dev_id, struc
* At this point the structure may be gone unless
* wait is true.
@@ -9,8 +11,10 @@
/* Notify the sending CPU that the task is done. */
mb();
---- 2010-01-06.orig/xen/arch/x86/smp.c 2009-08-19 17:01:49.000000000 +0200
-+++ 2010-01-06/xen/arch/x86/smp.c 2010-01-06 11:22:12.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/smp.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/smp.c
++++ xen-4.0.0-testing/xen/arch/x86/smp.c
@@ -394,7 +394,7 @@ static void __smp_call_function_interrup
if ( call_data.wait )
@@ -29,9 +33,11 @@
}
irq_exit();
---- 2010-01-06.orig/xen/common/keyhandler.c 2009-12-16 09:14:13.000000000 +0100
-+++ 2010-01-06/xen/common/keyhandler.c 2010-01-06 11:22:12.000000000 +0100
-@@ -72,14 +72,25 @@ static struct keyhandler show_handlers_k
+Index: xen-4.0.0-testing/xen/common/keyhandler.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/common/keyhandler.c
++++ xen-4.0.0-testing/xen/common/keyhandler.c
+@@ -71,14 +71,25 @@ static struct keyhandler show_handlers_k
.desc = "show this message"
};
@@ -61,7 +67,7 @@
}
static void dump_registers(unsigned char key, struct cpu_user_regs *regs)
-@@ -93,14 +104,12 @@ static void dump_registers(unsigned char
+@@ -92,14 +103,12 @@ static void dump_registers(unsigned char
printk("'%c' pressed -> dumping registers\n", key);
/* Get local execution state out immediately, in case we get stuck. */
@@ -77,8 +83,10 @@
on_selected_cpus(cpumask_of(cpu), __dump_execstate, NULL, 1);
}
---- 2010-01-06.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h 2009-05-20 08:46:00.000000000 +0200
-+++ 2010-01-06/xen/include/asm-ia64/linux-xen/asm/ptrace.h 2010-01-06 11:22:12.000000000 +0100
+Index: xen-4.0.0-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
+===================================================================
+--- xen-4.0.0-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h
++++ xen-4.0.0-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
@@ -278,7 +278,7 @@ struct switch_stack {
# define ia64_task_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
# define ia64_psr(regs) ((struct ia64_psr *) &(regs)->cr_ipsr)
++++++ hibernate.patch ++++++
Index: xen-4.0.0-testing/tools/firmware/hvmloader/acpi/dsdt.asl
===================================================================
--- xen-4.0.0-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
+++ xen-4.0.0-testing/tools/firmware/hvmloader/acpi/dsdt.asl
@@ -30,21 +30,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
/*
* S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:
* must match piix4 emulation.
+ * Turn off support for s3 and s4 sleep states to deal with SVVP tests.
+ * This is what MSFT does on HyperV.
*/
- Name (\_S3, Package (0x04)
- {
- 0x05, /* PM1a_CNT.SLP_TYP */
- 0x05, /* PM1b_CNT.SLP_TYP */
- 0x0, /* reserved */
- 0x0 /* reserved */
- })
- Name (\_S4, Package (0x04)
- {
- 0x06, /* PM1a_CNT.SLP_TYP */
- 0x06, /* PM1b_CNT.SLP_TYP */
- 0x00, /* reserved */
- 0x00 /* reserved */
- })
Name (\_S5, Package (0x04)
{
0x07, /* PM1a_CNT.SLP_TYP */
++++++ hv_tools.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,28 +2,29 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/lowlevel/xc/xc.c
+++ xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c
-@@ -914,15 +914,15 @@ static PyObject *pyxc_hvm_build(XcObject
- int i;
+@@ -917,16 +917,16 @@ static PyObject *pyxc_hvm_build(XcObject
#endif
+ int i;
char *image;
- int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1;
+ int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1, extid = 0;
- uint64_t vcpu_avail = 1;
+ PyObject *vcpu_avail_handle = NULL;
+ uint8_t vcpu_avail[(HVM_MAX_VCPUS + 7)/8];
static char *kwd_list[] = { "domid",
- "memsize", "image", "target", "vcpus",
- "vcpu_avail", "acpi", "apic", NULL };
-- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iilii", kwd_list,
+- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiOii", kwd_list,
+ "memsize", "image", "target", "vcpus",
+ "vcpu_avail", "extid", "acpi", "apic", NULL };
-+ if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiliii", kwd_list,
++ if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiOiii", kwd_list,
&dom, &memsize, &image, &target, &vcpus,
-- &vcpu_avail, &acpi, &apic) )
-+ &vcpu_avail, &extid, &acpi, &apic) )
+- &vcpu_avail_handle, &acpi, &apic) )
++ &vcpu_avail_handle, &extid, &acpi, &apic) )
return NULL;
- if ( target == -1 )
-@@ -950,6 +950,7 @@ static PyObject *pyxc_hvm_build(XcObject
+ memset(vcpu_avail, 0, sizeof(vcpu_avail));
+@@ -978,6 +978,7 @@ static PyObject *pyxc_hvm_build(XcObject
va_hvm->checksum -= sum;
munmap(va_map, XC_PAGE_SIZE);
#endif
@@ -35,7 +36,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendConfig.py
-@@ -150,6 +150,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
+@@ -151,6 +151,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
'nographic': int,
'nomigrate': int,
'pae' : int,
@@ -47,7 +48,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.0.0-testing/tools/python/xen/xend/image.py
-@@ -841,6 +841,7 @@ class HVMImageHandler(ImageHandler):
+@@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler):
self.apic = int(vmConfig['platform'].get('apic', 0))
self.acpi = int(vmConfig['platform'].get('acpi', 0))
@@ -55,7 +56,7 @@
self.guest_os_type = vmConfig['platform'].get('guest_os_type')
self.memory_sharing = int(vmConfig['memory_sharing'])
xc.dom_set_memshr(self.vm.getDomid(), self.memory_sharing)
-@@ -966,6 +967,7 @@ class HVMImageHandler(ImageHandler):
+@@ -964,6 +965,7 @@ class HVMImageHandler(ImageHandler):
log.debug("target = %d", mem_mb)
log.debug("vcpus = %d", self.vm.getVCpuCount())
log.debug("vcpu_avail = %li", self.vm.getVCpuAvail())
@@ -63,7 +64,7 @@
log.debug("acpi = %d", self.acpi)
log.debug("apic = %d", self.apic)
-@@ -975,6 +977,7 @@ class HVMImageHandler(ImageHandler):
+@@ -973,6 +975,7 @@ class HVMImageHandler(ImageHandler):
target = mem_mb,
vcpus = self.vm.getVCpuCount(),
vcpu_avail = self.vm.getVCpuAvail(),
@@ -86,7 +87,7 @@
gopts.var('acpi', val='ACPI',
fn=set_int, default=1,
use="Disable or enable ACPI of HVM domain.")
-@@ -1077,7 +1081,7 @@ def configure_hvm(config_image, vals):
+@@ -1081,7 +1085,7 @@ def configure_hvm(config_image, vals):
'timer_mode',
'usb', 'usbdevice',
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
++++++ hv_xen_base.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -151,14 +151,14 @@
+ uint32_t long_mode;
+ uint32_t ext_id;
+};
-+DECLARE_HVM_SAVE_TYPE(HYPERV_DOM, 15, struct hvm_hyperv_dom);
++DECLARE_HVM_SAVE_TYPE(HYPERV_DOM, 16, struct hvm_hyperv_dom);
+
+struct hvm_hyperv_cpu {
+ uint64_t control_msr;
+ uint64_t version_msr;
+ uint64_t pad[27]; //KYS: sles10 sp2 compatibility
+};
-+DECLARE_HVM_SAVE_TYPE(HYPERV_CPU, 16, struct hvm_hyperv_cpu);
++DECLARE_HVM_SAVE_TYPE(HYPERV_CPU, 17, struct hvm_hyperv_cpu);
+
/*
* Largest type-code in use
++++++ hv_xen_extension.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -1,8 +1,5 @@
-%patch
-Index: xen-4.0.0-testing/xen/include/asm-x86/hvm/hvm_extensions.h
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/include/asm-x86/hvm/hvm_extensions.h
++++ b/xen/include/asm-x86/hvm/hvm_extensions.h
@@ -0,0 +1,183 @@
+/****************************************************************************
+ |
@@ -187,17 +184,13 @@
+int hyperx_initialize(struct domain *d);
+
+#endif
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/Makefile
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/Makefile
++++ b/xen/arch/x86/hvm/hyperv/Makefile
@@ -0,0 +1,2 @@
+obj-y += hv_intercept.o
+obj-y += hv_hypercall.o
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_errno.h
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_errno.h
++++ b/xen/arch/x86/hvm/hyperv/hv_errno.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+ |
@@ -261,10 +254,8 @@
+#define HV_STATUS_NO_MEMORY_256PAGES 0x0103
+#define HV_STATUS_NO_MEMORY_1024PAGES 0x0104
+#endif
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.c
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.c
++++ b/xen/arch/x86/hvm/hyperv/hv_hypercall.c
@@ -0,0 +1,153 @@
+/****************************************************************************
+ |
@@ -419,10 +410,8 @@
+ return;
+ }
+}
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.h
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.h
++++ b/xen/arch/x86/hvm/hyperv/hv_hypercall.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ |
@@ -470,10 +459,8 @@
+#define HV_NOTIFY_LONG_SPIN_WAIT 0x0008
+
+#endif /* HV_HYPERCALL_H */
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c
++++ b/xen/arch/x86/hvm/hyperv/hv_intercept.c
@@ -0,0 +1,1009 @@
+/****************************************************************************
+ |
@@ -647,7 +634,7 @@
+ printk("Hyperv dom create failed\n");
+ return (1);
+ }
-+ for (i=0; i < MAX_VIRT_CPUS; i++)
++ for (i = 0; i < d->max_vcpus; i++)
+ {
+ if (d->vcpu[i] != NULL)
+ {
@@ -723,7 +710,7 @@
+static inline u32
+hv_get_max_vcpus_supported(void)
+{
-+ return (MAX_VIRT_CPUS);
++ return HVM_MAX_VCPUS;
+}
+
+
@@ -929,7 +916,7 @@
+ ASSERT(curp != NULL);
+#ifdef HV_STATS
+ printk("DUMP STATS\n");
-+ for (i=0; i < MAX_VIRT_CPUS; i++)
++ for (i = 0; i < d->max_vcpus; i++)
+ if (d->vcpu[i] != NULL)
+ hv_print_stats(curp, i);
+#endif
@@ -1484,11 +1471,9 @@
+ hvm_inject_exception(TRAP_gp_fault, 0, 0);
+ return (1);
+}
-Index: xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_shim.h
-===================================================================
--- /dev/null
-+++ xen-4.0.0-testing/xen/arch/x86/hvm/hyperv/hv_shim.h
-@@ -0,0 +1,285 @@
++++ b/xen/arch/x86/hvm/hyperv/hv_shim.h
+@@ -0,0 +1,286 @@
+/****************************************************************************
+ |
+ | Copyright (c) [2007, 2008] Novell, Inc.
@@ -1528,6 +1513,7 @@
+#include
+#include
+#include
++#include
+
+#include "hv_hypercall.h"
+
@@ -1704,7 +1690,7 @@
+ * Each VCPU here corresponds to the vcpu in the underlying hypervisor;
+ * they share the same ID.
+ */
-+ hv_vcpu_t vcpu_state[MAX_VIRT_CPUS];
++ hv_vcpu_t vcpu_state[HVM_MAX_VCPUS];
+} hv_partition_t;
+
+
++++++ ioemu-bdrv-open-CACHE_WB.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_blktap.c
-@@ -247,8 +247,11 @@ static int open_disk(struct td_state *s,
+@@ -249,8 +249,11 @@ static int open_disk(struct td_state *s,
drv = blktap_drivers[i].drv;
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
++++++ ioemu-blktap-barriers.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_blktap.c
-@@ -360,6 +360,15 @@ static void qemu_send_responses(void* op
+@@ -362,6 +362,15 @@ static void qemu_send_responses(void* op
}
/**
@@ -18,7 +18,7 @@
* Callback function for the IO message pipe. Reads requests from the ring
* and processes them (call qemu read/write functions).
*
-@@ -378,6 +387,7 @@ static void handle_blktap_iomsg(void* pr
+@@ -380,6 +389,7 @@ static void handle_blktap_iomsg(void* pr
blkif_t *blkif = s->blkif;
tapdev_info_t *info = s->ring_info;
int page_size = getpagesize();
@@ -26,7 +26,7 @@
struct aiocb_info *aiocb_info;
-@@ -410,7 +420,7 @@ static void handle_blktap_iomsg(void* pr
+@@ -412,7 +422,7 @@ static void handle_blktap_iomsg(void* pr
/* Don't allow writes on readonly devices */
if ((s->flags & TD_RDONLY) &&
@@ -35,7 +35,7 @@
blkif->pending_list[idx].status = BLKIF_RSP_ERROR;
goto send_response;
}
-@@ -431,7 +441,7 @@ static void handle_blktap_iomsg(void* pr
+@@ -433,7 +443,7 @@ static void handle_blktap_iomsg(void* pr
DPRINTF("Sector request failed:\n");
DPRINTF("%s request, idx [%d,%d] size [%llu], "
"sector [%llu,%llu]\n",
@@ -44,7 +44,7 @@
"WRITE" : "READ"),
idx,i,
(long long unsigned)
-@@ -444,8 +454,14 @@ static void handle_blktap_iomsg(void* pr
+@@ -446,8 +456,14 @@ static void handle_blktap_iomsg(void* pr
blkif->pending_list[idx].secs_pending += nsects;
@@ -60,7 +60,7 @@
case BLKIF_OP_WRITE:
aiocb_info = malloc(sizeof(*aiocb_info));
-@@ -465,6 +481,10 @@ static void handle_blktap_iomsg(void* pr
+@@ -467,6 +483,10 @@ static void handle_blktap_iomsg(void* pr
DPRINTF("ERROR: bdrv_write() == NULL\n");
goto send_response;
}
++++++ ioemu-blktap-image-format.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -19,7 +19,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_blktap.c
-@@ -218,9 +218,10 @@ static int map_new_dev(struct td_state *
+@@ -220,9 +220,10 @@ static int map_new_dev(struct td_state *
return -1;
}
@@ -31,7 +31,7 @@
char* devname;
static int devnumber = 0;
int i;
-@@ -230,7 +231,22 @@ static int open_disk(struct td_state *s,
+@@ -232,7 +233,22 @@ static int open_disk(struct td_state *s,
bs = bdrv_new(devname);
free(devname);
@@ -55,7 +55,7 @@
fprintf(stderr, "Could not open image file %s\n", path);
return -ENOMEM;
}
-@@ -521,7 +537,7 @@ static void handle_blktap_ctrlmsg(void*
+@@ -527,7 +543,7 @@ static void handle_blktap_ctrlmsg(void*
s = state_init();
/*Open file*/
++++++ ioemu-blktap-zero-size.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -16,7 +16,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_blktap.c
-@@ -256,6 +256,12 @@ static int open_disk(struct td_state *s,
+@@ -258,6 +258,12 @@ static int open_disk(struct td_state *s,
s->size = bs->total_sectors;
s->sector_size = 512;
++++++ ioemu-disable-scsi.patch ++++++
Index: xen-4.0.0-testing/tools/ioemu-remote/hw/xen_platform.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_platform.c 2010-02-18 14:08:08.000000000 -0700
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_platform.c 2010-02-18 14:28:59.000000000 -0700
@@ -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.0.0-testing/tools/ioemu-remote/qemu-xen.h
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/qemu-xen.h 2010-02-18 14:08:08.000000000 -0700
+++ xen-4.0.0-testing/tools/ioemu-remote/qemu-xen.h 2010-02-18 14:44:28.000000000 -0700
@@ -57,6 +57,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.0.0-testing/tools/ioemu-remote/hw/pci.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/pci.c 2010-02-18 14:49:36.000000000 -0700
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/pci.c 2010-02-18 14:53:47.000000000 -0700
@@ -892,6 +892,50 @@ void pci_unplug_netifs(void)
}
}
+void pci_unplug_scsi(void)
+{
+ PCIBus *bus;
+ PCIDevice *dev;
+ PCIIORegion *region;
+ int x;
+ int i;
+
+ /* We only support one PCI bus */
+ for (bus = first_bus; bus; bus = NULL) {
+ for (x = 0; x < 256; x++) {
+ dev = bus->devices[x];
+ if (dev &&
+ dev->config[0xa] == 0 &&
+ dev->config[0xb] == 1
+#ifdef CONFIG_PASSTHROUGH
+ && test_pci_devfn(x) != 1
+#endif
+ ) {
+ /* Found a scsi disk. Remove it from the bus. Note that
+ we don't free it here, since there could still be
+ references to it floating around. There are only
+ ever one or two structures leaked, and it's not
+ worth finding them all. */
+ bus->devices[x] = NULL;
+ for (i = 0; i < PCI_NUM_REGIONS; i++) {
+ region = &dev->io_regions[i];
+ if (region->addr == (uint32_t)-1 ||
+ region->size == 0)
+ continue;
+ fprintf(logfile, "region type %d at [%x,%x).\n",
+ region->type, region->addr,
+ region->addr+region->size);
+ if (region->type == PCI_ADDRESS_SPACE_IO) {
+ isa_unassign_ioport(region->addr, region->size);
+ } else if (region->type == PCI_ADDRESS_SPACE_MEM) {
+ unregister_iomem(region->addr);
+ }
+ }
+ }
+ }
+ }
+}
+
typedef struct {
PCIDevice dev;
PCIBus *bus;
++++++ keyhandler-alternative.patch ++++++
Index: xen-4.0.0-testing/xen/common/keyhandler.c
===================================================================
--- xen-4.0.0-testing.orig/xen/common/keyhandler.c
+++ xen-4.0.0-testing/xen/common/keyhandler.c
@@ -19,6 +19,7 @@
static struct keyhandler *key_table[256];
static unsigned char keypress_key;
+static bool_t alt_key_handling;
char keyhandler_scratch[1024];
@@ -115,6 +116,26 @@ static struct keyhandler dump_registers_
.desc = "dump registers"
};
+static DECLARE_TASKLET(dump_dom0_tasklet, NULL, 0);
+
+static void dump_dom0_action(unsigned long arg)
+{
+ struct vcpu *v = (void *)arg;
+
+ for ( ; ; ) {
+ vcpu_show_execution_state(v);
+ v = v->next_in_list;
+ if ( !v )
+ break;
+ if ( softirq_pending(smp_processor_id()) )
+ {
+ dump_dom0_tasklet.data = (unsigned long)v;
+ tasklet_schedule_cpu(&dump_dom0_tasklet, v->processor);
+ break;
+ }
+ }
+}
+
static void dump_dom0_registers(unsigned char key)
{
struct vcpu *v;
@@ -125,7 +146,17 @@ static void dump_dom0_registers(unsigned
printk("'%c' pressed -> dumping Dom0's registers\n", key);
for_each_vcpu ( dom0, v )
+ {
+ if ( alt_key_handling && softirq_pending(smp_processor_id()) )
+ {
+ tasklet_kill(&dump_dom0_tasklet);
+ tasklet_init(&dump_dom0_tasklet, dump_dom0_action,
+ (unsigned long)v);
+ tasklet_schedule_cpu(&dump_dom0_tasklet, v->processor);
+ return;
+ }
vcpu_show_execution_state(v);
+ }
}
static struct keyhandler dump_dom0_registers_keyhandler = {
@@ -425,8 +456,28 @@ static struct keyhandler do_debug_key_ke
.desc = "trap to xendbg"
};
+static void do_toggle_alt_key(unsigned char key, struct cpu_user_regs *regs)
+{
+ alt_key_handling = !alt_key_handling;
+ printk("'%c' pressed -> using %s key handling\n", key,
+ alt_key_handling ? "alternative" : "normal");
+}
+
+static struct keyhandler toggle_alt_keyhandler = {
+ .irq_callback = 1,
+ .u.irq_fn = do_toggle_alt_key,
+ .desc = "toggle alternative key handling"
+};
+
void __init initialize_keytable(void)
{
+ if ( num_present_cpus() > 16 )
+ {
+ alt_key_handling = 1;
+ printk(XENLOG_INFO "Defaulting to alternative key handling; "
+ "send 'A' to switch to normal mode.\n");
+ }
+ register_keyhandler('A', &toggle_alt_keyhandler);
register_keyhandler('d', &dump_registers_keyhandler);
register_keyhandler('h', &show_handlers_keyhandler);
register_keyhandler('q', &dump_domains_keyhandler);
++++++ kmp_filelist ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -1,3 +1,3 @@
%defattr (-,root,root)
/lib/modules/%2-%1
-/etc/modprobe.d/xen_pvdrivers
+/etc/modprobe.d/xen_pvdrivers.conf
++++++ magic_ioport_compat.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -6,12 +6,12 @@
===================================================================
--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
-@@ -289,7 +289,10 @@ static int check_platform_magic(struct d
+@@ -320,7 +320,10 @@ static int check_platform_magic(struct d
if (magic != XEN_IOPORT_MAGIC_VAL) {
- dev_err(dev, "invalid magic %#x", magic);
-- return -ENODEV;
-+ /*
+ err = "unrecognised magic value";
+- goto no_dev;
++ /*
+ * Older backend; just return 0 to be compatible.
+ */
+ return 0;
++++++ pvdrv-import-shared-info.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -1,5 +1,7 @@
---- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c 2008-10-14 19:44:11.000000000 +0200
-+++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/evtchn.c 2009-11-24 17:38:08.000000000 +0100
+Index: xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
+===================================================================
+--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
++++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
@@ -40,7 +40,9 @@
#include
#endif
@@ -10,9 +12,11 @@
#define is_valid_evtchn(x) ((x) != 0)
#define evtchn_from_irq(x) (irq_evtchn[irq].evtchn)
---- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c 2009-02-24 20:09:53.000000000 +0100
-+++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c 2009-11-24 17:45:02.000000000 +0100
-@@ -70,7 +70,6 @@ static uint64_t callback_via;
+Index: xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+===================================================================
+--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
++++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+@@ -77,7 +77,6 @@ static uint64_t callback_via;
static int __devinit init_xen_info(void)
{
struct xen_add_to_physmap xatp;
@@ -20,7 +24,7 @@
#ifdef __ia64__
xencomm_initialize();
-@@ -78,6 +77,7 @@ static int __devinit init_xen_info(void)
+@@ -85,6 +84,7 @@ static int __devinit init_xen_info(void)
setup_xen_features();
@@ -28,7 +32,7 @@
shared_info_frame = alloc_xen_mmio(PAGE_SIZE) >> PAGE_SHIFT;
xatp.domid = DOMID_SELF;
xatp.idx = 0;
-@@ -90,6 +90,11 @@ static int __devinit init_xen_info(void)
+@@ -97,6 +97,11 @@ static int __devinit init_xen_info(void)
ioremap(shared_info_frame << PAGE_SHIFT, PAGE_SIZE);
if (shared_info_area == NULL)
panic("can't map shared info\n");
@@ -40,8 +44,10 @@
return 0;
}
---- 2009-11-09.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h 2008-10-14 19:44:11.000000000 +0200
-+++ 2009-11-09/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h 2009-11-24 17:40:08.000000000 +0100
+Index: xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
+===================================================================
+--- xen-4.0.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
++++ xen-4.0.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
@@ -27,6 +27,11 @@
unsigned long alloc_xen_mmio(unsigned long len);
void platform_pci_resume(void);
++++++ qemu-console-retry.patch ++++++
Index: xen-4.0.0-testing/tools/ioemu-remote/hw/xen_console.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/hw/xen_console.c
+++ xen-4.0.0-testing/tools/ioemu-remote/hw/xen_console.c
@@ -182,6 +182,7 @@ static int con_init(struct XenDevice *xe
{
struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
char *type, *dom;
+ int retries = 0;
/* setup */
dom = xs_get_domain_path(xenstore, con->xendev.dom);
@@ -191,7 +192,11 @@ static int con_init(struct XenDevice *xe
snprintf(con->console, sizeof(con->console), "%s/device/console/%d", dom, xendev->dev);
free(dom);
- type = xenstore_read_str(con->console, "type");
+ while (!(type = xenstore_read_str(con->console, "type")) && retries < 5) {
+ usleep(250000);
+ retries++;
+ }
+
if (!type || 0 != strcmp(type, "ioemu")) {
xen_be_printf(xendev, 1, "not for me (type=%s)\n", type);
if (type)
++++++ shadow.patch ++++++
In domain_create, previously we reserve 1M memory for domain creation (as
described in xend comment), and these memory SHOULD NOT related with vcpu
number. And later, shadow_mem_control() will modify the shadow size to 256
pages per vcpu (also plus some other values related with guest memory size...).
Therefore the C/S 20389 which modifies 1M to 4M to fit more vcpu number is
wrong. I'm sorry for that.
Following is the reason why currently 1M doesn't work for big number vcpus,
as we mentioned, it caused Xen crash.
Each time when sh_set_allocation() is called, it checks whether
shadow_min_acceptable_pages() has been allocated, if not, it will allocate
them. That is to say, it is 128 pages per vcpu. But before we define
d->max_vcpu, guest vcpu hasn't been initialized, so
shadow_min_acceptable_pages() always returns 0. Therefore we only allocated 1M
shadow memory for domain_create, and didn't satisfy 128 pages per vcpu for
alloc_vcpu().
As we know, vcpu allocation is done in the hypercall of
XEN_DOMCTL_max_vcpus. However, at this point we haven't called
shadow_mem_control() and are still using the pre-allocated 1M shadow memory to
allocate so many vcpus. So it should be a BUG. Therefore when vcpu number
increases, 1M is not enough and causes Xen crash. C/S 20389 exposes this issue.
So I think the right process should be, after d->max_vcpu is set and before
alloc_vcpu(), we should call sh_set_allocation() to satisfy 128 pages per vcpu.
The following patch does this work. Is it work for you? Thanks!
Signed-off-by: Dongxiao Xu
Index: xen-4.0.0-testing/xen/arch/x86/mm/shadow/common.c
===================================================================
--- xen-4.0.0-testing.orig/xen/arch/x86/mm/shadow/common.c
+++ xen-4.0.0-testing/xen/arch/x86/mm/shadow/common.c
@@ -41,6 +41,9 @@
DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
+static unsigned int sh_set_allocation(struct domain *d,
+ unsigned int pages,
+ int *preempted);
/* Set up the shadow-specific parts of a domain struct at start of day.
* Called for every domain from arch_domain_create() */
void shadow_domain_init(struct domain *d, unsigned int domcr_flags)
@@ -82,6 +85,12 @@ void shadow_vcpu_init(struct vcpu *v)
}
#endif
+ if ( !is_idle_domain(v->domain) )
+ {
+ shadow_lock(v->domain);
+ sh_set_allocation(v->domain, 128, NULL);
+ shadow_unlock(v->domain);
+ }
v->arch.paging.mode = &SHADOW_INTERNAL_NAME(sh_paging_mode, 3);
}
@@ -3102,7 +3111,7 @@ int shadow_enable(struct domain *d, u32
{
unsigned int r;
shadow_lock(d);
- r = sh_set_allocation(d, 1024, NULL); /* Use at least 4MB */
+ r = sh_set_allocation(d, 256, NULL); /* Use at least 1MB */
if ( r != 0 )
{
sh_set_allocation(d, 0, NULL);
++++++ snapshot-ioemu-delete.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -865,6 +865,18 @@ static void xenstore_process_dm_command_
+@@ -912,6 +912,18 @@ static void xenstore_process_dm_command_
}
snapshot_name = xs_read(xsh, XBT_NULL, path, &len);
++++++ snapshot-ioemu-restore.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -40,7 +40,7 @@
char buf[MSG_SIZE];
+#ifndef QEMU_TOOL
-+ char *snapshot;
++ char *snapshot;
+#endif
+
length = read(read_fd, buf, MSG_SIZE);
@@ -91,7 +91,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -102,6 +102,8 @@ int xenstore_watch_new_callback(const ch
+@@ -103,6 +103,8 @@ int xenstore_watch_new_callback(const ch
}
@@ -100,7 +100,7 @@
static int pasprintf(char **buf, const char *fmt, ...)
{
va_list ap;
-@@ -641,8 +643,33 @@ void xenstore_parse_domain_config(int hv
+@@ -644,8 +646,33 @@ void xenstore_parse_domain_config(int hv
}
}
pstrcpy(bs->filename, sizeof(bs->filename), params);
@@ -135,7 +135,7 @@
}
#endif
-@@ -776,6 +803,23 @@ int xenstore_parse_disable_pf_config ()
+@@ -779,6 +806,23 @@ int xenstore_parse_disable_pf_config ()
return disable_pf;
}
++++++ snapshot-ioemu-save.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -191,7 +191,7 @@
void xenstore_process_event(void *opaque);
void xenstore_record_dm(const char *subpath, const char *state);
void xenstore_record_dm_state(const char *state);
-+void xenstore_record_dm_error(char *errmsg);
++void xenstore_record_dm_error(const char *errmsg);
void xenstore_check_new_media_present(int timeout);
void xenstore_write_vncport(int vnc_display);
void xenstore_read_vncpasswd(int domid, char *pwbuf, size_t pwbuflen);
@@ -205,9 +205,9 @@
#include "sysemu.h"
+#include "qemu-xen.h"
+ #include "console.h"
#include "hw.h"
- #include "pci.h"
-@@ -836,6 +837,7 @@ static void xenstore_process_dm_command_
+@@ -839,6 +840,7 @@ static void xenstore_process_dm_command_
{
char *path = NULL, *command = NULL, *par = NULL;
unsigned int len;
@@ -215,7 +215,7 @@
if (pasprintf(&path,
"/local/domain/0/device-model/%u/command", domid) == -1) {
-@@ -851,7 +853,18 @@ static void xenstore_process_dm_command_
+@@ -854,7 +856,18 @@ static void xenstore_process_dm_command_
if (!strncmp(command, "save", len)) {
fprintf(logfile, "dm-command: pause and save state\n");
@@ -235,17 +235,17 @@
} else if (!strncmp(command, "continue", len)) {
fprintf(logfile, "dm-command: continue after state save\n");
xen_pause_requested = 0;
-@@ -984,6 +997,13 @@ void xenstore_record_dm_state(const char
+@@ -987,6 +1000,13 @@ void xenstore_record_dm_state(const char
xenstore_record_dm("state", state);
}
-+void xenstore_record_dm_error(char *errmsg)
++void xenstore_record_dm_error(const char *errmsg)
+{
+ fprintf(logfile, "%s\n", errmsg);
+ xenstore_record_dm("error", errmsg);
+ xenstore_record_dm_state("error");
+}
+
- void xenstore_process_media_change_event(char **vec)
+ static void xenstore_process_media_change_event(char **vec)
{
char *media_present = NULL;
++++++ snapshot-xend.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.0.0-testing/tools/python/xen/xend/image.py
-@@ -492,7 +492,7 @@ class ImageHandler:
+@@ -490,7 +490,7 @@ class ImageHandler:
domains.domains_lock.acquire()
@@ -11,7 +11,7 @@
if self.device_model is None:
return
# Signal the device model to for action
-@@ -529,10 +529,17 @@ class ImageHandler:
+@@ -527,10 +527,17 @@ class ImageHandler:
while state != ret:
state = xstransact.Read("/local/domain/0/device-model/%i/state"
% self.vm.getDomid())
@@ -32,7 +32,7 @@
#resotre orig state
xstransact.Store("/local/domain/0/device-model/%i"
-@@ -557,6 +564,10 @@ class ImageHandler:
+@@ -555,6 +562,10 @@ class ImageHandler:
except:
pass
@@ -295,7 +295,7 @@
if dominfo:
dominfo.resume()
else:
-@@ -329,26 +403,7 @@ def restore(xd, fd, dominfo = None, paus
+@@ -329,24 +403,7 @@ def restore(xd, fd, dominfo = None, paus
dominfo.completeRestore(handler.store_mfn, handler.console_mfn)
@@ -314,11 +314,9 @@
-
- try:
- dominfo.waitForDevices() # Wait for backends to set up
-- except Exception, exn:
-- log.exception(exn)
--
-- if lock:
-- XendDomain.instance().domains_lock.acquire()
+- finally:
+- if lock:
+- XendDomain.instance().domains_lock.acquire()
+ wait_devs(dominfo)
if not paused:
@@ -327,10 +325,10 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendConfig.py
-@@ -233,6 +233,7 @@ XENAPI_CFG_TYPES = {
- 's3_integrity' : int,
+@@ -235,6 +235,7 @@ XENAPI_CFG_TYPES = {
'superpages' : int,
'memory_sharing': int,
+ 'pool_name' : str,
+ 'snapshotname': str,
}
@@ -539,7 +537,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xm/main.py
+++ xen-4.0.0-testing/tools/python/xen/xm/main.py
-@@ -122,6 +122,14 @@ SUBCOMMAND_HELP = {
+@@ -123,6 +123,14 @@ SUBCOMMAND_HELP = {
'Restore a domain from a saved state.'),
'save' : ('[-c|-f] <Domain> <CheckpointFile>',
'Save a domain state to restore later.'),
@@ -554,7 +552,7 @@
'shutdown' : ('<Domain> [-waRH]', 'Shutdown a domain.'),
'top' : ('', 'Monitor a host and the domains in real time.'),
'unpause' : ('<Domain>', 'Unpause a paused domain.'),
-@@ -316,6 +324,9 @@ SUBCOMMAND_OPTIONS = {
+@@ -335,6 +343,9 @@ SUBCOMMAND_OPTIONS = {
('-c', '--checkpoint', 'Leave domain running after creating snapshot'),
('-f', '--force', 'Force to overwrite exist file'),
),
@@ -564,7 +562,7 @@
'restore': (
('-p', '--paused', 'Do not unpause domain after restoring it'),
),
-@@ -362,6 +373,10 @@ common_commands = [
+@@ -385,6 +396,10 @@ common_commands = [
"restore",
"resume",
"save",
@@ -575,7 +573,7 @@
"shell",
"shutdown",
"start",
-@@ -395,6 +410,10 @@ domain_commands = [
+@@ -418,6 +433,10 @@ domain_commands = [
"restore",
"resume",
"save",
@@ -586,7 +584,7 @@
"shutdown",
"start",
"suspend",
-@@ -815,6 +834,62 @@ def xm_event_monitor(args):
+@@ -850,6 +869,62 @@ def xm_event_monitor(args):
#
#########################################################################
@@ -649,7 +647,7 @@
def xm_save(args):
arg_check(args, "save", 2, 4)
-@@ -3467,6 +3542,10 @@ commands = {
+@@ -3694,6 +3769,10 @@ commands = {
"restore": xm_restore,
"resume": xm_resume,
"save": xm_save,
++++++ svm-lmsl.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -45,7 +45,7 @@
#define set_segment_register(name, value) \
asm volatile ( "movw %%ax ,%%" STR(name) "" : : "a" (value) )
-@@ -840,6 +845,29 @@ static int svm_cpu_up(struct cpuinfo_x86
+@@ -847,6 +852,29 @@ static int svm_cpu_up(struct cpuinfo_x86
/* Initialize core's ASID handling. */
svm_asid_init(c);
@@ -79,7 +79,7 @@
===================================================================
--- xen-4.0.0-testing.orig/xen/include/asm-x86/hvm/hvm.h
+++ xen-4.0.0-testing/xen/include/asm-x86/hvm/hvm.h
-@@ -131,6 +131,12 @@ struct hvm_function_table {
+@@ -132,6 +132,12 @@ struct hvm_function_table {
extern struct hvm_function_table hvm_funcs;
extern int hvm_enabled;
++++++ tapdisk-ioemu-shutdown-fix.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:17.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:17.000000000 +0100
@@ -27,8 +27,8 @@
+int connected_disks = 0;
fd_list_entry_t *fd_start = NULL;
- static void handle_blktap_iomsg(void* private);
-@@ -541,6 +542,7 @@ static void handle_blktap_ctrlmsg(void*
+ extern char* get_snapshot_name(int devid);
+@@ -547,6 +548,7 @@ static void handle_blktap_ctrlmsg(void*
/* Allocate the disk structs */
s = state_init();
@@ -36,7 +36,7 @@
/*Open file*/
if (s == NULL || open_disk(s, path, msg->drivertype, msg->readonly)) {
-@@ -591,7 +593,8 @@ static void handle_blktap_ctrlmsg(void*
+@@ -629,7 +631,8 @@ static void handle_blktap_ctrlmsg(void*
case CTLMSG_CLOSE:
s = get_state(msg->cookie);
if (s) unmap_disk(s);
++++++ vif-bridge-no-iptables.patch ++++++
Index: xen-4.0.0-testing/tools/hotplug/Linux/vif-bridge
===================================================================
--- xen-4.0.0-testing.orig/tools/hotplug/Linux/vif-bridge
+++ xen-4.0.0-testing/tools/hotplug/Linux/vif-bridge
@@ -91,7 +91,7 @@ case "$command" in
;;
esac
-handle_iptable
+#handle_iptable
log debug "Successful vif-bridge $command for $vif, bridge $bridge."
if [ "$command" == "online" ]
++++++ x86-cpufreq-report.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -1,7 +1,9 @@
---- 2010-01-06.orig/xen/arch/x86/platform_hypercall.c 2009-12-14 08:34:19.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/platform_hypercall.c 2010-01-06 11:19:05.000000000 +0100
-@@ -21,7 +21,7 @@
- #include
+Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/platform_hypercall.c
++++ xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c
+@@ -22,7 +22,7 @@
+ #include
#include
#include
-#include
@@ -9,7 +11,7 @@
#include
#include
#include "cpu/mtrr/mtrr.h"
-@@ -62,6 +62,7 @@ static long cpu_down_helper(void *data)
+@@ -63,6 +63,7 @@ static long cpu_down_helper(void *hdl, v
ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
{
ret_t ret = 0;
@@ -17,7 +19,7 @@
struct xen_platform_op curop, *op = &curop;
if ( !IS_PRIV(current->domain) )
-@@ -474,6 +475,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
+@@ -475,6 +476,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
op->u.mem_add.epfn,
op->u.mem_add.pxm);
break;
@@ -42,8 +44,10 @@
default:
ret = -ENOSYS;
break;
---- 2010-01-06.orig/xen/include/public/platform.h 2009-12-14 08:34:19.000000000 +0100
-+++ 2010-01-06/xen/include/public/platform.h 2010-01-06 11:22:06.000000000 +0100
+Index: xen-4.0.0-testing/xen/include/public/platform.h
+===================================================================
+--- xen-4.0.0-testing.orig/xen/include/public/platform.h
++++ xen-4.0.0-testing/xen/include/public/platform.h
@@ -355,6 +355,14 @@ struct xenpf_mem_hotadd
uint32_t flags;
};
++++++ x86-show-page-walk-early.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -1,5 +1,7 @@
---- 2010-01-06.orig/xen/arch/x86/mm.c 2010-01-05 13:29:13.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/mm.c 2010-01-06 11:22:26.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/mm.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/mm.c
++++ xen-4.0.0-testing/xen/arch/x86/mm.c
@@ -154,6 +154,8 @@ unsigned long __read_mostly pdx_group_va
int opt_allow_hugepage;
boolean_param("allowhugepage", opt_allow_hugepage);
@@ -9,9 +11,11 @@
#define l1_disallow_mask(d) \
((d != dom_io) && \
(rangeset_is_empty((d)->iomem_caps) && \
---- 2010-01-06.orig/xen/arch/x86/traps.c 2009-12-17 12:20:22.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/traps.c 2010-01-06 11:22:26.000000000 +0100
-@@ -1349,6 +1349,7 @@ asmlinkage void do_early_page_fault(stru
+Index: xen-4.0.0-testing/xen/arch/x86/traps.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/traps.c
++++ xen-4.0.0-testing/xen/arch/x86/traps.c
+@@ -1352,6 +1352,7 @@ asmlinkage void do_early_page_fault(stru
unsigned long *stk = (unsigned long *)regs;
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
@@ -19,8 +23,10 @@
printk("Stack dump: ");
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
printk("%p ", _p(*stk++));
---- 2010-01-06.orig/xen/arch/x86/x86_32/mm.c 2009-10-29 12:24:48.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/x86_32/mm.c 2010-01-06 11:22:26.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/x86_32/mm.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/x86_32/mm.c
++++ xen-4.0.0-testing/xen/arch/x86/x86_32/mm.c
@@ -122,6 +122,8 @@ void __init paging_init(void)
#undef CNT
#undef MFN
@@ -30,8 +36,10 @@
/* Create page tables for ioremap()/map_domain_page_global(). */
for ( i = 0; i < (IOREMAP_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ )
{
---- 2010-01-06.orig/xen/arch/x86/x86_32/traps.c 2009-12-02 10:02:49.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/x86_32/traps.c 2010-01-06 11:22:26.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/x86_32/traps.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/x86_32/traps.c
++++ xen-4.0.0-testing/xen/arch/x86/x86_32/traps.c
@@ -161,7 +161,8 @@ void show_page_walk(unsigned long addr)
l3t += (cr3 & 0xFE0UL) >> 3;
l3e = l3t[l3_table_offset(addr)];
@@ -62,8 +70,10 @@
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
unmap_domain_page(l1t);
---- 2010-01-06.orig/xen/arch/x86/x86_64/mm.c 2010-01-05 13:29:13.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/x86_64/mm.c 2010-01-06 11:22:26.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/x86_64/mm.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/x86_64/mm.c
++++ xen-4.0.0-testing/xen/arch/x86/x86_64/mm.c
@@ -725,6 +725,8 @@ void __init paging_init(void)
#undef CNT
#undef MFN
@@ -73,8 +83,10 @@
/* Create user-accessible L2 directory to map the MPT for compat guests. */
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
---- 2010-01-06.orig/xen/arch/x86/x86_64/traps.c 2009-12-02 10:02:49.000000000 +0100
-+++ 2010-01-06/xen/arch/x86/x86_64/traps.c 2010-01-06 11:22:26.000000000 +0100
+Index: xen-4.0.0-testing/xen/arch/x86/x86_64/traps.c
+===================================================================
+--- xen-4.0.0-testing.orig/xen/arch/x86/x86_64/traps.c
++++ xen-4.0.0-testing/xen/arch/x86/x86_64/traps.c
@@ -176,7 +176,8 @@ void show_page_walk(unsigned long addr)
l4t = mfn_to_virt(mfn);
l4e = l4t[l4_table_offset(addr)];
@@ -115,8 +127,10 @@
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
}
---- 2010-01-06.orig/xen/include/asm-x86/mm.h 2009-12-17 12:20:22.000000000 +0100
-+++ 2010-01-06/xen/include/asm-x86/mm.h 2010-01-06 11:23:39.000000000 +0100
+Index: xen-4.0.0-testing/xen/include/asm-x86/mm.h
+===================================================================
+--- xen-4.0.0-testing.orig/xen/include/asm-x86/mm.h
++++ xen-4.0.0-testing/xen/include/asm-x86/mm.h
@@ -443,6 +443,8 @@ TYPE_SAFE(unsigned long,mfn);
#define SHARED_M2P_ENTRY (~0UL - 1UL)
#define SHARED_M2P(_e) ((_e) == SHARED_M2P_ENTRY)
++++++ xen-4.0.0-testing-src.tar.bz2 ++++++
xen/xen-4.0.0-testing-src.tar.bz2 /mounts/work_src_done/STABLE/xen/xen-4.0.0-testing-src.tar.bz2 differ: char 11, line 1
++++++ xen-config.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -9,9 +9,9 @@
-CONFIG_QEMU ?= $(QEMU_REMOTE)
+CONFIG_QEMU ?= ioemu-remote
- QEMU_TAG := xen-4.0.0-rc1
- #QEMU_TAG ?= 2621a102cd74cd6691bed30f638581639fcb141d
-@@ -164,9 +164,9 @@ CONFIG_OCAML_XENSTORED ?= n
+ QEMU_TAG ?= e5d14857cd67490bf956d97c8888c0be95ed3f78
+ # Thu Feb 18 15:36:29 2010 +0000
+@@ -163,9 +163,9 @@ CONFIG_OCAML_XENSTORED ?= n
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
++++++ xen-destdir.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -62,7 +62,7 @@
+ --prefix="/usr" --root="$(DESTDIR)" --force
install-dtd: all
- $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)
+ $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen
Index: xen-4.0.0-testing/tools/xenstore/Makefile
===================================================================
--- xen-4.0.0-testing.orig/tools/xenstore/Makefile
++++++ xen-domUloader.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -123,7 +123,7 @@
import xen.util.xsm.xsm as security
from xen.util import xsconstants
from xen.util import mkdir
-@@ -2320,6 +2320,10 @@ class XendDomainInfo:
+@@ -2342,6 +2342,10 @@ class XendDomainInfo:
deviceClass, config = self.info['devices'].get(dev_uuid)
self._waitForDevice(deviceClass, config['devid'])
@@ -134,7 +134,7 @@
def _waitForDevice_destroy(self, deviceClass, devid, backpath):
return self.getDeviceController(deviceClass).waitForDevice_destroy(
devid, backpath)
-@@ -3206,7 +3210,7 @@ class XendDomainInfo:
+@@ -3230,7 +3234,7 @@ class XendDomainInfo:
devtype = devinfo[0]
disk = devinfo[1]['uname']
@@ -143,7 +143,7 @@
# If this is a drbd volume, check if we need to activate it
if disk.find(":") != -1:
-@@ -3217,8 +3221,17 @@ class XendDomainInfo:
+@@ -3241,8 +3245,17 @@ class XendDomainInfo:
if state == 'Secondary':
os.system('/sbin/drbdadm primary ' + diskname)
@@ -163,7 +163,7 @@
if mounted:
# This is a file, not a device. pygrub can cope with a
# file if it's raw, but if it's QCOW or other such formats
-@@ -3234,7 +3247,8 @@ class XendDomainInfo:
+@@ -3258,7 +3271,8 @@ class XendDomainInfo:
from xen.xend import XendDomain
dom0 = XendDomain.instance().privilegedDomain()
@@ -173,7 +173,7 @@
fn = BOOTLOADER_LOOPBACK_DEVICE
try:
-@@ -3244,8 +3258,10 @@ class XendDomainInfo:
+@@ -3268,8 +3282,10 @@ class XendDomainInfo:
if mounted:
log.info("Unmounting %s from %s." %
(fn, BOOTLOADER_LOOPBACK_DEVICE))
++++++ xen-gcc45-fixes.patch ++++++
--- xen-4.0.0-testing/tools/xenstore/xs_lib.c.orig 2010-03-01 08:28:04.000000000 -0700
+++ xen-4.0.0-testing/tools/xenstore/xs_lib.c 2010-03-01 09:12:04.000000000 -0700
@@ -149,7 +149,7 @@ bool xs_strings_to_perms(struct xs_permi
bool xs_perm_to_string(const struct xs_permissions *perm,
char *buffer, size_t buf_len)
{
- switch (perm->perms) {
+ switch ((int)perm->perms) {
case XS_PERM_WRITE:
*buffer = 'w';
break;
--- xen-4.0.0-testing/tools/blktap/lib/blktaplib.h.orig 2010-03-01 09:24:26.000000000 -0700
+++ xen-4.0.0-testing/tools/blktap/lib/blktaplib.h 2010-03-01 09:28:16.000000000 -0700
@@ -42,7 +42,7 @@
#include
#include
-#define BLK_RING_SIZE __RING_SIZE((blkif_sring_t *)0, XC_PAGE_SIZE)
+#define BLK_RING_SIZE __CONST_RING_SIZE(blkif, XC_PAGE_SIZE)
/* size of the extra VMA area to map in attached pages. */
#define BLKTAP_VMA_PAGES BLK_RING_SIZE
--- xen-4.0.0-testing/tools/blktap2/include/blktaplib.h.orig 2010-03-01 09:46:30.000000000 -0700
+++ xen-4.0.0-testing/tools/blktap2/include/blktaplib.h 2010-03-01 09:46:50.000000000 -0700
@@ -45,7 +45,7 @@
#define EPRINTF(_f, _a...) syslog(LOG_ERR, "tap-err:%s: " _f, __func__, ##_a)
#define PERROR(_f, _a...) EPRINTF(_f ": %s", ##_a, strerror(errno))
-#define BLK_RING_SIZE __RING_SIZE((blkif_sring_t *)0, XC_PAGE_SIZE)
+#define BLK_RING_SIZE __CONST_RING_SIZE(blkif, XC_PAGE_SIZE)
/* size of the extra VMA area to map in attached pages. */
#define BLKTAP_VMA_PAGES BLK_RING_SIZE
--- xen-4.0.0-testing/xen/include/xen/compat.h.orig 2010-03-01 13:22:34.000000000 -0700
+++ xen-4.0.0-testing/xen/include/xen/compat.h 2010-03-01 14:30:34.000000000 -0700
@@ -129,8 +129,8 @@
#define CHECK_TYPE(name) \
- typedef int __checkT ## name[1 - ((xen_ ## name ## _t *)0 != \
- (compat_ ## name ## _t *)0) * 2]
+ typedef int __checkT ## name[1 - (sizeof(xen_ ## name ## _t) != \
+ sizeof(compat_ ## name ## _t)) * 2]
#define CHECK_TYPE_(k, n) \
typedef int __checkT ## k ## _ ## n[1 - ((k xen_ ## n *)0 != \
(k compat_ ## n *)0) * 2]
@@ -146,26 +146,30 @@
typedef int __checkF ## t ## __ ## f[1 - (&((xen_ ## t ## _t *)0)->f != \
&((compat_ ## t ## _t *)0)->f) * 2]
#define CHECK_FIELD_(k, n, f) \
- typedef int __checkF ## k ## _ ## n ## __ ## f[1 - (&((k xen_ ## n *)0)->f != \
- &((k compat_ ## n *)0)->f) * 2]
+ typedef int __checkF ## k ## _ ## n ## __ ## f[1 - (offsetof(k xen_ ## n,f) != \
+ offsetof(k compat_ ## n,f)) * 2]
#define CHECK_SUBFIELD_1(t, f1, f2) \
typedef int __checkF1 ## t ## __ ## f1 ## __ ## f2 \
- [1 - (&((xen_ ## t ## _t *)0)->f1.f2 != \
- &((compat_ ## t ## _t *)0)->f1.f2) * 2]
+ [1 - (offsetof(xen_ ## t ## _t,f1.f2) != \
+ offsetof(compat_ ## t ## _t,f1.f2)) * 2]
#define CHECK_SUBFIELD_1_(k, n, f1, f2) \
typedef int __checkF1 ## k ## _ ## n ## __ ## f1 ## __ ## f2 \
- [1 - (&((k xen_ ## n *)0)->f1.f2 != \
- &((k compat_ ## n *)0)->f1.f2) * 2]
+ [1 - (offsetof(k xen_ ## n,f1.f2) != \
+ offsetof(k compat_ ## n,f1.f2)) * 2]
#define CHECK_SUBFIELD_2(t, f1, f2, f3) \
typedef int __checkF2 ## t ## __ ## f1 ## __ ## f2 ## __ ## f3 \
- [1 - (&((xen_ ## t ## _t *)0)->f1.f2.f3 != \
- &((compat_ ## t ## _t *)0)->f1.f2.f3) * 2]
+ [1 - (offsetof(xen_ ## t ## _t,f1.f2.f3) != \
+ offsetof(compat_ ## t ## _t,f1.f2.f3)) * 2]
+#define CHECK_SUBFIELD_2_(k, n, f1, f2, f3) \
+ typedef int __checkF2 ## k ## _ ## n ## __ ## f1 ## __ ## f2 ## __ ## f3 \
+ [1 - (offsetof(k xen_ ## n,f1.f2.f3) != \
+ offsetof(k compat_ ## n,f1.f2.f3)) * 2]
#define CHECK_SUBFIELD_2_(k, n, f1, f2, f3) \
typedef int __checkF2 ## k ## _ ## n ## __ ## f1 ## __ ## f2 ## __ ## f3 \
- [1 - (&((k xen_ ## n *)0)->f1.f2.f3 != \
- &((k compat_ ## n *)0)->f1.f2.f3) * 2]
+ [1 - (offsetof(k xen_ ## n,f1.f2.f3) != \
+ offsetof(k compat_ ## n,f1.f2.f3)) * 2]
int hypercall_xlat_continuation(unsigned int *id, unsigned int mask, ...);
--- xen-4.0.0-testing/tools/ioemu-remote/block-vvfat.c.orig 2010-03-01 14:53:11.000000000 -0700
+++ xen-4.0.0-testing/tools/ioemu-remote/block-vvfat.c 2010-03-01 14:53:56.000000000 -0700
@@ -865,7 +865,8 @@ static int init_directories(BDRVVVFATSta
{
direntry_t* entry=array_get_next(&(s->directory));
entry->attributes=0x28; /* archive | volume label */
- snprintf((char*)entry->name,11,"QEMU VVFAT");
+ memcpy(entry->name,"QEMU VVF",8);
+ memcpy(entry->extension,"AT ",3);
}
/* Now build FAT, and write back information into directory */
++++++ xen-hvm-default-bridge.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -17,7 +17,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/net.c
+++ xen-4.0.0-testing/tools/ioemu-remote/net.c
-@@ -1759,9 +1759,10 @@ int net_client_init(const char *device,
+@@ -1759,9 +1759,10 @@ int net_client_init(const char *device,
}
if (get_param_value(script_arg, sizeof(script_arg), "scriptarg", p) == 0 &&
get_param_value(script_arg, sizeof(script_arg), "bridge", p) == 0) { /* deprecated; for xend compatibility */
@@ -34,7 +34,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.0.0-testing/tools/python/xen/xend/image.py
-@@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler):
+@@ -910,11 +910,13 @@ class HVMImageHandler(ImageHandler):
mac = devinfo.get('mac')
if mac is None:
raise VmError("MAC address not specified or generated.")
++++++ xen-hvm-default-pae.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -4,7 +4,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.0.0-testing/tools/python/xen/xend/image.py
-@@ -1030,7 +1030,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
+@@ -1028,7 +1028,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
def configure(self, vmConfig):
HVMImageHandler.configure(self, vmConfig)
++++++ xen-max-free-mem.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -56,7 +56,7 @@
+ 'max_hvm_memory',
'node_to_cpu',
'node_to_memory',
- 'node_to_dma32_mem'
+ 'node_to_dma32_mem',
Index: xen-4.0.0-testing/tools/python/xen/xend/balloon.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/balloon.py
@@ -98,7 +98,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -1452,6 +1452,27 @@ class XendDomainInfo:
+@@ -1469,6 +1469,27 @@ class XendDomainInfo:
pci_conf = self.info['devices'][dev_uuid][1]
return map(pci_dict_to_bdf_str, pci_conf['devs'])
++++++ xen-qemu-iscsi-fix.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -1,8 +1,6 @@
-Index: xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-===================================================================
---- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
-+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
-@@ -398,7 +398,7 @@ void xenstore_parse_domain_config(int hv
+--- a/tools/ioemu-remote/xenstore.c
++++ b/tools/ioemu-remote/xenstore.c
+@@ -399,7 +399,7 @@ void xenstore_parse_domain_config(int hv
char *buf = NULL;
char *fpath = NULL, *bpath = NULL, *btype = NULL,
*dev = NULL, *params = NULL, *drv = NULL;
@@ -11,7 +9,7 @@
unsigned int len, num, hd_index, pci_devid = 0;
BlockDriverState *bs;
BlockDriver *format;
-@@ -485,12 +485,7 @@ void xenstore_parse_domain_config(int hv
+@@ -486,12 +486,7 @@ void xenstore_parse_domain_config(int hv
continue;
free(danger_type);
danger_type = xs_read(xsh, XBT_NULL, danger_buf, &len);
@@ -25,7 +23,7 @@
/* read the name of the device */
if (pasprintf(&buf, "%s/type", bpath) == -1)
continue;
-@@ -498,6 +493,35 @@ void xenstore_parse_domain_config(int hv
+@@ -499,6 +494,35 @@ void xenstore_parse_domain_config(int hv
drv = xs_read(xsh, XBT_NULL, buf, &len);
if (drv == NULL)
continue;
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -104,7 +104,7 @@
barf_perror("Failed to read from event fd");
if (port == virq_port)
-@@ -561,7 +561,7 @@ static int dom0_init(void)
+@@ -561,7 +561,7 @@ static int dom0_init(void)
struct domain *dom0;
port = xenbus_evtchn();
@@ -178,7 +178,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/libxl/Makefile
+++ xen-4.0.0-testing/tools/libxl/Makefile
-@@ -49,7 +49,7 @@ xl.o: $(LIBCONFIG_OUTPUT)/libconfig.so x
+@@ -50,7 +50,7 @@ xl.o: $(LIBCONFIG_OUTPUT)/libconfig.so x
$(CC) $(CFLAGS) -I$(LIBCONFIG_SOURCE) -c xl.c
$(CLIENTS): xl.o libxenlight.so $(LIBCONFIG_OUTPUT)/libconfig.so
++++++ xen_pvdrivers.conf ++++++
# Install the paravirtualized drivers
install libata /sbin/modprobe xen-vbd 2>&1 |:; /sbin/modprobe --ignore-install libata
install 8139cp /sbin/modprobe xen-vnif 2>&1 |:; /sbin/modprobe --ignore-install 8139cp
install 8139too /sbin/modprobe xen-vnif 2>&1 |:; /sbin/modprobe --ignore-install 8139too
++++++ xenapi-console-protocol.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -3896,6 +3896,14 @@ class XendDomainInfo:
+@@ -3920,6 +3920,14 @@ class XendDomainInfo:
if not config.has_key('backend'):
config['backend'] = "00000000-0000-0000-0000-000000000000"
++++++ xend-core-dump-loc.diff ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
-@@ -2291,7 +2291,7 @@ class XendDomainInfo:
+@@ -2313,7 +2313,7 @@ class XendDomainInfo:
# To prohibit directory traversal
based_name = os.path.basename(self.info['name_label'])
++++++ xend-domain-lock.patch ++++++
--- /var/tmp/diff_new_pack.Pw8CLN/_old 2010-03-02 01:46:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Pw8CLN/_new 2010-03-02 01:46:18.000000000 +0100
@@ -83,7 +83,7 @@
from xen.util.blkif import parse_uname
import xen.util.xsm.xsm as security
from xen.util import xsconstants
-@@ -457,6 +458,7 @@ class XendDomainInfo:
+@@ -466,6 +467,7 @@ class XendDomainInfo:
if self._stateGet() in (XEN_API_VM_POWER_STATE_HALTED, XEN_API_VM_POWER_STATE_SUSPENDED, XEN_API_VM_POWER_STATE_CRASHED):
try:
@@ -91,7 +91,7 @@
XendTask.log_progress(0, 30, self._constructDomain)
XendTask.log_progress(31, 60, self._initDomain)
-@@ -2933,6 +2935,11 @@ class XendDomainInfo:
+@@ -2972,6 +2974,11 @@ class XendDomainInfo:
self._stateSet(DOM_STATE_HALTED)
self.domid = None # Do not push into _stateSet()!
@@ -103,7 +103,7 @@
finally:
self.refresh_shutdown_lock.release()
-@@ -4434,6 +4441,74 @@ class XendDomainInfo:
+@@ -4478,6 +4485,74 @@ class XendDomainInfo:
def has_device(self, dev_class, dev_uuid):
return (dev_uuid in self.info['%s_refs' % dev_class.lower()])
@@ -243,7 +243,7 @@
+ dominfo.acquire_running_lock()
return dominfo
- except:
+ except Exception, exn:
dominfo.destroy()
Index: xen-4.0.0-testing/tools/hotplug/Linux/Makefile
===================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org