Hello community,
here is the log from the commit of package xen
checked in at Sat Sep 2 19:05:03 CEST 2006.
--------
--- arch/i386/xen/xen.changes 2006-08-29 01:05:16.000000000 +0200
+++ xen/xen.changes 2006-09-01 20:49:44.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Aug 31 09:45:11 MDT 2006 - ccoffing@novell.com
+
+- Automatically create/destroy virtual frame buffer viewer. Add
+ "sdl=1" to config file of a paravirtualized VM to get the viewer.
+- Log files have moved to /var/log/xen.
+
+-------------------------------------------------------------------
+Tue Aug 29 15:34:38 MDT 2006 - ccoffing@novell.com
+
+- xendomains does not actually save domains. (#201349)
+- Update to xen-unstable changeset 11299.
+
+-------------------------------------------------------------------
Old:
----
xen-hvm-memory-check.diff
xen-migration-oops.diff
xen-pae-makefile.diff
New:
----
vfb-viewer.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:27.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:27.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package xen (Version 3.0.3_11134)
+# spec file for package xen (Version 3.0.3_11299)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,11 +14,12 @@
BuildRequires: LibVNCServer SDL-devel autoconf automake bin86 dev86 glibc-devel-32bit gtk2-devel latex2html libjpeg-devel libreiserfs-devel openssl openssl-devel python-devel te_ams te_latex tetex transfig
%define xvers 3.0
%define xvermaj 3
-%define changeset 11134
+%define changeset 11299
%define with_pygrub 1
+%define with_vfb 1
%define xen_build_dir xen-unstable
-Version: 3.0.3_11134
-Release: 4
+Version: 3.0.3_11299
+Release: 1
License: GPL
Group: System/Kernel
Autoreqprov: on
@@ -46,44 +47,42 @@
Patch9: xen-domUloader.diff
Patch10: xen-domUloader-pygrub.diff
Patch11: xen-messages.diff
-Patch12: xen-pae-makefile.diff
-Patch13: xen-network-bridge.diff
-Patch14: xen-no-dummy-nfs-ip.diff
-Patch15: xen-config-defaults.diff
-Patch16: xen-xm-top-needs-root.diff
-Patch17: xen-tightvnc-args.diff
-Patch18: xen-max-free-mem.diff
-Patch19: xen-bonding.diff
-Patch20: xen-ioapic-ack-default.diff
-Patch21: xen-lost-mouse.diff
-Patch22: xen-hvm-memory-check.diff
-Patch23: xen-paths.diff
-Patch24: xen-hvm-rep-movs.diff
-Patch25: xen-lowmem-emergency-pool.diff
-Patch26: xen-console.diff
-Patch27: xen-read-port-0x61.diff
-Patch28: xen-migration-oops.diff
-Patch29: xen-shutdown-wait.diff
-Patch30: block-losetup-retry.diff
-Patch31: block-sync.diff
-Patch32: xen-blktap.diff
-Patch33: xen-io-register-context.diff
+Patch12: xen-network-bridge.diff
+Patch13: xen-no-dummy-nfs-ip.diff
+Patch14: xen-config-defaults.diff
+Patch15: xen-xm-top-needs-root.diff
+Patch16: xen-tightvnc-args.diff
+Patch17: xen-max-free-mem.diff
+Patch18: xen-bonding.diff
+Patch19: xen-ioapic-ack-default.diff
+Patch20: xen-lost-mouse.diff
+Patch21: xen-paths.diff
+Patch22: xen-hvm-rep-movs.diff
+Patch23: xen-lowmem-emergency-pool.diff
+Patch24: xen-console.diff
+Patch25: xen-read-port-0x61.diff
+Patch26: xen-shutdown-wait.diff
+Patch27: block-losetup-retry.diff
+Patch28: block-sync.diff
+Patch29: xen-blktap.diff
+Patch30: xen-io-register-context.diff
+Patch31: xen-removable.diff
## Upstream (or upstream soon):
Patch100: vncfb.diff
Patch101: vfb-frontend.diff
Patch102: vfb-backend.diff
Patch103: vncfb-makefile.diff
+Patch104: vfb-viewer.diff
## Patches for bug 184175:
-Patch104: xen-no-incdec-writable-pte-prediction.patch
-Patch105: xen-no-pgt-score.patch
-Patch106: xen-no-pgt-high-mfn.patch
-Patch107: xen-wider-mfn.patch
+Patch105: xen-no-incdec-writable-pte-prediction.patch
+Patch106: xen-no-pgt-score.patch
+Patch107: xen-no-pgt-high-mfn.patch
+Patch108: xen-wider-mfn.patch
## Debugging:
Patch200: xen-enable-debug
Patch201: xen-enable-hvm-debug.diff
## Future / need to be re-ported:
Patch300: xen-poweroff.diff
-Patch301: xen-removable.diff
URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
Prefix: /usr
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -405,14 +404,18 @@
%prep
%setup -q -n %xen_build_dir
# Apply upstream patches first...
+%if %{?with_vfb}0
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch107 -p1
+%endif
+## need to forward-port
+#%patch105 -p1
+#%patch106 -p1
+#%patch107 -p1
+#%patch108 -p1
# Now our patches...
%patch1 -p1
%patch2 -p1
@@ -445,10 +448,10 @@
%patch27 -p1
%patch28 -p1
%patch29 -p1
-%patch30 -p1
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
+## need to forward-port
+#%patch30 -p1
+## need to forward-port
+#%patch31 -p1
# Debugging
%patch200 -p1
#patch201 -p1
@@ -490,8 +493,8 @@
%ifarch %ix86
# Build PAE, non-debug version
make -C xen clean
-make xen XEN_TARGET_X86_PAE=y
-make -C xen install XEN_TARGET_X86_PAE=y \
+make xen pae=y
+make -C xen install pae=y \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-pae-%{version}-%{release}.gz
rm $RPM_BUILD_ROOT/boot/xen-%{xvers}.gz; ln -s xen-pae-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-pae-%{xvers}.gz
@@ -504,14 +507,13 @@
make -C xen install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
# tools
-# Follow the naming convention set forth by the xenstore-* tools.
-mv $RPM_BUILD_ROOT/usr/sbin/setmask $RPM_BUILD_ROOT/usr/sbin/xenmon-setmask
-mv $RPM_BUILD_ROOT/usr/bin/setsize $RPM_BUILD_ROOT/usr/bin/xentrace-setsize
-mv $RPM_BUILD_ROOT/usr/bin/xentrace_format $RPM_BUILD_ROOT/usr/bin/xentrace-format
-mv $RPM_BUILD_ROOT/%{_mandir}/man1/xentrace_format.1 $RPM_BUILD_ROOT/%{_mandir}/man1/xentrace-format.1
%ifarch x86_64
mkdir -p $RPM_BUILD_ROOT/usr/lib/xen/bin/
ln -s %{_libdir}/xen/bin/qemu-dm $RPM_BUILD_ROOT/usr/lib/xen/bin/qemu-dm
+%if %{?with_vfb}0
+ln -s %{_libdir}/xen/bin/sdlfb $RPM_BUILD_ROOT/usr/lib/xen/bin/sdlfb
+ln -s %{_libdir}/xen/bin/vncfb $RPM_BUILD_ROOT/usr/lib/xen/bin/vncfb
+%endif
%endif
# docs
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen
@@ -523,10 +525,8 @@
for name in COPYING %SOURCE2 %SOURCE3; do
cp -p $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
done
-cp tools/misc/cpuperf/README.txt \
- $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/README.cpuperf
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc
-for name in xen_config.html xend.tex vtpm.txt crashdb.txt sedf_scheduler_mini-HOWTO.txt; do
+for name in xend.tex vtpm.txt crashdb.txt sedf_scheduler_mini-HOWTO.txt; do
cp -p docs/misc/$name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc/
done
# init scripts
@@ -545,13 +545,14 @@
# logrotate
install -m644 -D %SOURCE8 $RPM_BUILD_ROOT/etc/logrotate.d/xend
# directories
+mkdir -p $RPM_BUILD_ROOT/var/lib/xenstored
+mkdir -p $RPM_BUILD_ROOT/var/lib/xen/images
+mkdir -p $RPM_BUILD_ROOT/var/lib/xen/save
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/domain
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/migrate
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xend-db/vnet
-mkdir -p $RPM_BUILD_ROOT/var/lib/xen/save
-mkdir -p $RPM_BUILD_ROOT/var/lib/xenstored
+mkdir -p $RPM_BUILD_ROOT/var/log/xen
mkdir -p $RPM_BUILD_ROOT/var/run/xenstored
-mkdir -p $RPM_BUILD_ROOT/var/lib/xen/images
ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images
# Bootloader
install -m755 %SOURCE9 $RPM_BUILD_ROOT/usr/lib/xen/boot/
@@ -631,8 +632,11 @@
%endif
%dir /usr/lib/xen/boot
%{_libdir}/libblktap.so*
-%{_libdir}/xen/bin/vncfb
+%{_libdir}/xen/bin/readnotes
+%if %{?with_vfb}0
%{_libdir}/xen/bin/sdlfb
+%{_libdir}/xen/bin/vncfb
+%endif
#%{_libdir}/xen/bin/xc_kexec
%{_libdir}/xen/bin/xc_restore
%{_libdir}/xen/bin/xc_save
@@ -642,14 +646,15 @@
%{_mandir}/man5/*.5.gz
%{_mandir}/man8/*.8.gz
%dir /var/lib/xen
+%dir /var/lib/xenstored
%dir /var/lib/xen/images
+%dir /var/lib/xen/save
%dir /var/lib/xen/xend-db
%dir /var/lib/xen/xend-db/domain
%dir /var/lib/xen/xend-db/migrate
%dir /var/lib/xen/xend-db/vnet
-%dir /var/lib/xenstored
+%dir /var/log/xen
%dir /var/run/xenstored
-%dir /var/lib/xen/save
%config /etc/init.d/xendomains
%config /etc/init.d/xend
%config /etc/logrotate.d/xend
@@ -686,6 +691,10 @@
%{_libdir}/xen/bin/qemu-dm
%ifarch x86_64
/usr/lib/xen/bin/qemu-dm
+%if %{?with_vfb}0
+/usr/lib/xen/bin/sdlfb
+/usr/lib/xen/bin/vncfb
+%endif
%endif
/usr/lib/xen/boot/hvmloader
@@ -707,10 +716,8 @@
/usr/include/xen/io/*.h
/usr/include/xen/linux/*.h
/usr/bin/serial-split
-/usr/bin/cpuperf-*
/usr/bin/xenperf
%dir %{_defaultdocdir}/xen
-%{_defaultdocdir}/xen/README.cpuperf
%files doc-html
%defattr(-,root,root)
@@ -742,6 +749,13 @@
%{insserv_cleanup}
%changelog -n xen
+* Thu Aug 31 2006 - ccoffing@novell.com
+- Automatically create/destroy virtual frame buffer viewer. Add
+ "sdl=1" to config file of a paravirtualized VM to get the viewer.
+- Log files have moved to /var/log/xen.
+* Tue Aug 29 2006 - ccoffing@novell.com
+- xendomains does not actually save domains. (#201349)
+- Update to xen-unstable changeset 11299.
* Tue Aug 29 2006 - ccoffing@novell.com
- Fix incorrect path on x86_64 for vncfb and sdlfb.
* Thu Aug 17 2006 - ccoffing@novell.com
++++++ README.SuSE ++++++
--- arch/i386/xen/README.SuSE 2006-08-07 16:33:52.000000000 +0200
+++ xen/README.SuSE 2006-08-30 22:37:40.000000000 +0200
@@ -162,6 +162,7 @@
start other VMs when the VM server boots. It also cleanly shuts down the
other VMs when the VM server shuts down. To use this feature, place a
symbolic link in /etc/xen/auto that points to the VM's configuration file.
+Look in /etc/sysconfig/xendomains for relevant settings.
Creating a VM with YaST
++++++ init.xendomains ++++++
--- arch/i386/xen/init.xendomains 2006-08-17 19:10:32.000000000 +0200
+++ xen/init.xendomains 2006-08-30 23:05:59.000000000 +0200
@@ -88,22 +88,18 @@
get_name_from_cfg()
{
- NM=`grep '^name[ ]*=' $1 | sed -e 's/^name[ ]*=[ ]*"\([^"]*\)".*$/\1/' -e 's/%[id]/[0-9]*/g'`
+ NM=`grep '^name[ ]*=' $1 | sed -e 's/^name[ ]*=[ ]*['\''"]\([^'\''"]*\)['\''"].*$/\1/'`
}
running_auto_names()
{
- AUTONAMES=
+ unset AUTONAMES[@]
if ! dir_contains_something "$XENDOMAINS_AUTO"; then
return
fi
for dom in "$XENDOMAINS_AUTO"/*; do
get_name_from_cfg "$dom"
- if [ -z "$AUTONAMES" ]; then
- AUTONAMES="$NM";
- else
- AUTONAMES="$AUTONAMES|$NM"
- fi
+ AUTONAMES+=("$NM")
done
}
@@ -121,7 +117,7 @@
while read LN; do
parseln "$LN"
[ $id = 0 ] && continue
- [ "$name" = "$NM" ] && return 0;
+ [ "$name" = "$NM" ] && return 0
done < <(xm list | grep -v '^Name')
return 1
}
@@ -132,7 +128,7 @@
echo -n "xendomains already running (lockfile exists)"
rc_reset
rc_status -v
- return 0;
+ return 0
fi
local printed=0
@@ -268,16 +264,18 @@
[ $id = 0 ] && continue
printed=1
if [ "$XENDOMAINS_AUTO_ONLY" = "true" ]; then
- case "$name" in
- ($AUTONAMES)
- # fall through
- ;;
- (*)
+ is_auto_domain=0
+ for n in "${AUTNAMES[@]}"; do
+ if [ "$name" = "$n" ]; then
+ is_auto_domain=1
+ break
+ fi
+ done
+ if [ $is_auto_domain -eq 0 ]; then
echo -n " $name: "
rc_status -s
continue
- ;;
- esac
+ fi
fi
if [ -n "$XENDOMAINS_SYSRQ" ]; then
for sysrq in $XENDOMAINS_SYSRQ; do
++++++ vfb-frontend.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -68,7 +68,7 @@
===================================================================
--- xen-unstable.orig/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c
+++ xen-unstable/linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c
-@@ -1871,8 +1871,12 @@ void __init setup_arch(char **cmdline_p)
+@@ -1867,8 +1867,12 @@ void __init setup_arch(char **cmdline_p)
#endif
#endif
} else {
++++++ vfb-viewer.diff ++++++
Index: xen-unstable/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-unstable/tools/python/xen/xend/XendDomainInfo.py
@@ -1481,7 +1481,7 @@ class XendDomainInfo:
self.createDevice(n, c)
if self.image:
- self.image.createDeviceModel()
+ self.image.spawnHelper()
## public:
Index: xen-unstable/tools/python/xen/xend/image.py
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/image.py
+++ xen-unstable/tools/python/xen/xend/image.py
@@ -55,8 +55,8 @@ class ImageHandler:
defined in a subclass. Usually this is the only method that needs
defining in a subclass.
- The method createDeviceModel() is called to create the domain device
- model if it needs one. The default is to do nothing.
+ The method spawnHelper() is called to create any assisting processes,
+ such as the domain device model. The default is to do nothing.
The method destroy() is called when the domain is destroyed.
The default is to do nothing.
@@ -71,6 +71,9 @@ class ImageHandler:
self.kernel = None
self.ramdisk = None
self.cmdline = None
+ self.helper = None
+ self.helper_args = []
+ self.pid = 0
self.configure(imageConfig, deviceConfig)
@@ -93,10 +96,14 @@ class ImageHandler:
self.cmdline += " " + args
self.ramdisk = get_cfg("ramdisk", '')
+ self.display = sxp.child_value(imageConfig, 'display')
+ self.xauthority = sxp.child_value(imageConfig, 'xauthority')
+
self.vm.storeVm(("image/ostype", self.ostype),
("image/kernel", self.kernel),
("image/cmdline", self.cmdline),
- ("image/ramdisk", self.ramdisk))
+ ("image/ramdisk", self.ramdisk),
+ ("image/display", self.display))
def cleanupBootloading(self):
@@ -156,9 +163,22 @@ class ImageHandler:
"""Build the domain. Define in subclass."""
raise NotImplementedError()
- def createDeviceModel(self):
- """Create device model for the domain (define in subclass if needed)."""
- pass
+ def spawnHelper(self):
+ """Create the helper process for the domain."""
+ if self.pid:
+ return
+ if not self.helper:
+ return
+ args = [self.helper]
+ args += self.helper_args
+ env = dict(os.environ)
+ if self.display:
+ env['DISPLAY'] = self.display
+ if self.xauthority:
+ env['XAUTHORITY'] = self.xauthority
+ log.info("spawning helper: %s %s", self.helper, args)
+ self.pid = os.spawnve(os.P_NOWAIT, self.helper, args, env)
+ log.info("helper pid: %d", self.pid)
def destroy(self):
"""Extra cleanup on domain destroy (define in subclass if needed)."""
@@ -169,6 +189,25 @@ class LinuxImageHandler(ImageHandler):
ostype = "linux"
+ def spawnHelper(self):
+ if self.pid:
+ return
+ if not self.helper:
+ return
+ self.helper_args = [ str(self.vm.getDomid()) ]
+ ImageHandler.spawnHelper(self)
+
+ def configure(self, imageConfig, deviceConfig):
+ ImageHandler.configure(self, imageConfig, deviceConfig)
+ sdl = sxp.child_value(imageConfig, 'sdl')
+ vnc = sxp.child_value(imageConfig, 'vnc')
+ if sdl:
+ self.helper = "/usr/lib/xen/bin/sdlfb"
+ elif vnc:
+ self.helper = "/usr/lib/xen/bin/vncfb"
+ else:
+ self.helper = None
+
def buildDomain(self):
store_evtchn = self.vm.getStorePort()
console_evtchn = self.vm.getConsolePort()
@@ -232,18 +271,13 @@ class HVMImageHandler(ImageHandler):
raise VmError("Not an HVM capable platform, we stop creating!")
self.dmargs = self.parseDeviceModelArgs(imageConfig, deviceConfig)
- self.device_model = sxp.child_value(imageConfig, 'device_model')
- if not self.device_model:
+ self.helper = sxp.child_value(imageConfig, 'device_model')
+ if not self.helper:
raise VmError("hvm: missing device model")
- self.display = sxp.child_value(imageConfig, 'display')
- self.xauthority = sxp.child_value(imageConfig, 'xauthority')
self.vncconsole = sxp.child_value(imageConfig, 'vncconsole')
self.vm.storeVm(("image/dmargs", " ".join(self.dmargs)),
- ("image/device-model", self.device_model),
- ("image/display", self.display))
-
- self.pid = 0
+ ("image/device-model", self.helper))
self.dmargs += self.configVNC(imageConfig)
@@ -349,25 +383,18 @@ class HVMImageHandler(ImageHandler):
ret += ['-vncunused']
return ret
- def createDeviceModel(self):
+ def spawnHelper(self):
if self.pid:
return
# Execute device model.
#todo: Error handling
- args = [self.device_model]
- args = args + ([ "-d", "%d" % self.vm.getDomid(),
+ args = ([ "-d", "%d" % self.vm.getDomid(),
"-m", "%s" % (self.vm.getMemoryTarget() / 1024)])
args = args + self.dmargs
- env = dict(os.environ)
- if self.display:
- env['DISPLAY'] = self.display
- if self.xauthority:
- env['XAUTHORITY'] = self.xauthority
if self.vncconsole:
args = args + ([ "-vncviewer" ])
- log.info("spawning device models: %s %s", self.device_model, args)
- self.pid = os.spawnve(os.P_NOWAIT, self.device_model, args, env)
- log.info("device model pid: %d", self.pid)
+ self.helper_args = args
+ ImageHandler.spawnHelper(self)
def destroy(self):
self.unregister_shutdown_watch();
Index: xen-unstable/tools/python/xen/xm/create.py
===================================================================
--- xen-unstable.orig/tools/python/xen/xm/create.py
+++ xen-unstable/tools/python/xen/xm/create.py
@@ -481,6 +481,11 @@ def configure_image(vals):
if vals.extra:
config_image.append(['args', vals.extra])
+ args = [ 'vnc', 'sdl', 'display', 'xauthority' ]
+ for a in args:
+ if (vals.__dict__[a]):
+ config_image.append([a, vals.__dict__[a]])
+
if vals.builder == 'hvm':
configure_hvm(config_image, vals)
@@ -636,8 +641,8 @@ def configure_hvm(config_image, vals):
"""
args = [ 'device_model', 'pae', 'vcpus', 'boot', 'fda', 'fdb',
'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'soundhw',
- 'vnc', 'vncdisplay', 'vncunused', 'vncconsole', 'sdl', 'display',
- 'acpi', 'apic', 'xauthority', 'usb', 'usbdevice' ]
+ 'vncdisplay', 'vncunused', 'vncconsole',
+ 'acpi', 'apic', 'usb', 'usbdevice' ]
for a in args:
if (vals.__dict__[a]):
config_image.append([a, vals.__dict__[a]])
++++++ xen-bonding.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xen-3.0-testing/tools/examples/network-bridge
+Index: xen-unstable/tools/examples/network-bridge
===================================================================
---- xen-3.0-testing.orig/tools/examples/network-bridge
-+++ xen-3.0-testing/tools/examples/network-bridge
+--- xen-unstable.orig/tools/examples/network-bridge
++++ xen-unstable/tools/examples/network-bridge
@@ -145,6 +145,21 @@ antispoofing () {
iptables -A FORWARD -m physdev --physdev-in ${vif0} -j ACCEPT
}
++++++ xen-config-defaults.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,9 +2,19 @@
===================================================================
--- xen-unstable.orig/tools/examples/init.d/sysconfig.xendomains
+++ xen-unstable/tools/examples/init.d/sysconfig.xendomains
-@@ -111,7 +111,7 @@ XENDOMAINS_AUTO=/etc/xen/auto
+@@ -98,7 +98,6 @@ XENDOMAINS_RESTORE=true
+ # Note that the script tries to be clever if both RESTORE and AUTO are
+ # set: It will first restore saved domains and then only start domains
+ # in AUTO which are not running yet.
+-# Note that the name matching is somewhat fuzzy.
+ #
+ XENDOMAINS_AUTO=/etc/xen/auto
+
+@@ -109,9 +108,8 @@ XENDOMAINS_AUTO=/etc/xen/auto
+ # files in XENDOMAINS_AUTO will be treated according to XENDOMAINS_SYSRQ,
+ # XENDOMAINS_MIGRATE, XENDOMAINS_SAVE, XENDMAINS_SHUTDOWN; otherwise
# all running domains will be.
- # Note that the name matching is somewhat fuzzy.
+-# Note that the name matching is somewhat fuzzy.
#
-XENDOMAINS_AUTO_ONLY=false
+XENDOMAINS_AUTO_ONLY=true
++++++ xen-console.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,11 +2,11 @@
Charles, attached the promised patch for replacing xen-console.diff. Jan
-Index: xen-unstable/xen/drivers/char/console.c
+Index: xen-unstable/xen/drivers/video/vga.c
===================================================================
---- xen-unstable.orig/xen/drivers/char/console.c
-+++ xen-unstable/xen/drivers/char/console.c
-@@ -77,6 +77,30 @@ static DEFINE_SPINLOCK(console_lock);
+--- xen-unstable.orig/xen/drivers/video/vga.c
++++ xen-unstable/xen/drivers/video/vga.c
+@@ -573,6 +573,30 @@ string_param("vga", opt_vga);
#define ATTRIBUTE 7
#define VIDEO_SIZE (COLUMNS * LINES * 2)
@@ -34,12 +34,12 @@
+ return data != COLUMNS - 1;
+}
+
- /* Clear the screen and initialize VIDEO, XPOS and YPOS. */
- static void cls(void)
+ void vga_init(void)
{
-@@ -154,14 +178,21 @@ static void put_newline(void)
+ char *p;
+@@ -656,14 +680,21 @@ static void put_newline(void)
- static void putchar_console(int c)
+ void vga_putchar(int c)
{
+ static int vga_in_gfx = -1;
+
++++++ xen-domUloader.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xm/create.py
+++ xen-unstable/tools/python/xen/xm/create.py
-@@ -646,13 +646,20 @@ def run_bootloader(vals, config_image):
+@@ -655,13 +655,19 @@ def run_bootloader(vals, config_image):
(uname, dev, mode, backend) = vals.disk[0]
file = blkif.blkdev_uname_to_file(uname)
@@ -13,30 +13,27 @@
warn("The bootentry option is deprecated. Use bootargs and pass "
"--entry= directly.")
- vals.bootargs = "--entry=%s" %(vals.bootentry,)
--
-- return bootloader(vals.bootloader, file, not vals.console_autoconnect,
-- vals.bootargs, config_image)
+ bootargs.append("--entry=%s" % vals.bootentry)
+ if vals.root:
+ bootargs.append("--root=%s" % vals.root.split()[0])
+ bootargs.append("--disks=\"%s\"" % str(vals.disk))
-+
-+ return bootloader(vals.bootloader, file,
-+ not vals.console_autoconnect, vals.dryrun,
-+ bootargs, config_image)
+
+ return bootloader(vals.bootloader, file, not vals.console_autoconnect,
+- vals.bootargs, config_image)
++ vals.dryrun, bootargs, config_image)
def make_config(vals):
"""Create the domain configuration.
-@@ -667,7 +674,7 @@ def make_config(vals):
- config.append([n, v])
+@@ -677,7 +683,7 @@ def make_config(vals):
- map(add_conf, ['name', 'memory', 'maxmem', 'restart', 'on_poweroff',
-- 'on_reboot', 'on_crash', 'vcpus', 'features'])
-+ 'on_reboot', 'on_crash', 'vcpus', 'features', 'root'])
+ map(add_conf, ['name', 'memory', 'maxmem', 'shadow_memory',
+ 'restart', 'on_poweroff', 'on_reboot', 'on_crash',
+- 'vcpus', 'features'])
++ 'vcpus', 'features', 'root'])
if vals.uuid is not None:
config.append(['uuid', vals.uuid])
-@@ -685,13 +692,15 @@ def make_config(vals):
+@@ -695,13 +701,15 @@ def make_config(vals):
config.append(['backend', ['tpmif']])
if vals.localtime:
config.append(['localtime', vals.localtime])
@@ -66,16 +63,7 @@
"""Run the boot loader executable on the given disk and return a
config image.
@param blexec Binary to use as the boot loader
-@@ -27,6 +27,8 @@ def bootloader(blexec, disk, quiet = 0,
- @param quiet Run in non-interactive mode, just booting the default.
- @param blargs Arguments to pass to the bootloader."""
-
-+ log.debug("bootloader(%s, %s, %d, %s, %s)" % \
-+ (blexec, disk, quiet, str(blargs), str(imgcfg)))
- if not os.access(blexec, os.X_OK):
- msg = "Bootloader isn't executable"
- log.error(msg)
-@@ -47,9 +49,10 @@ def bootloader(blexec, disk, quiet = 0,
+@@ -47,9 +47,10 @@ def bootloader(blexec, disk, quiet = 0,
args = [ blexec ]
if quiet:
args.append("-q")
@@ -88,7 +76,7 @@
args.append(disk)
try:
-@@ -67,6 +70,7 @@ def bootloader(blexec, disk, quiet = 0,
+@@ -67,6 +68,7 @@ def bootloader(blexec, disk, quiet = 0,
continue
break
ret = ""
@@ -100,15 +88,15 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-unstable/tools/python/xen/xend/XendDomainInfo.py
-@@ -134,6 +134,7 @@ ROUNDTRIPPING_CONFIG_ENTRIES = [
- ('maxmem', int),
- ('bootloader', str),
+@@ -135,6 +135,7 @@ ROUNDTRIPPING_CONFIG_ENTRIES = [
+ ('maxmem', int),
+ ('bootloader', str),
('bootloader_args', str),
-+ ('root', str),
- ('features', str),
- ('localtime', int),
++ ('root', str),
+ ('features', str),
+ ('localtime', int),
]
-@@ -575,6 +576,7 @@ class XendDomainInfo:
+@@ -578,6 +579,7 @@ class XendDomainInfo:
defaultInfo('maxmem', lambda: 0)
defaultInfo('bootloader', lambda: None)
defaultInfo('bootloader_args', lambda: None)
@@ -116,7 +104,7 @@
defaultInfo('backend', lambda: [])
defaultInfo('device', lambda: [])
defaultInfo('image', lambda: None)
-@@ -1661,6 +1663,7 @@ class XendDomainInfo:
+@@ -1692,6 +1694,7 @@ class XendDomainInfo:
return
blcfg = None
# FIXME: this assumes that we want to use the first disk device
@@ -124,7 +112,7 @@
for (n,c) in self.info['device']:
if not n or not c or n != "vbd":
continue
-@@ -1668,10 +1671,16 @@ class XendDomainInfo:
+@@ -1699,10 +1702,16 @@ class XendDomainInfo:
if disk is None:
continue
fn = blkdev_uname_to_file(disk)
++++++ xen-enable-debug ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -9,8 +9,8 @@
-crash_debug ?= n
+crash_debug ?= y
- # Hardcoded configuration implications and dependencies.
- # Do this is a neater way if it becomes unwieldy.
+ XEN_ROOT=$(BASEDIR)/..
+ include $(XEN_ROOT)/Config.mk
Index: xen-unstable/Config.mk
===================================================================
--- xen-unstable.orig/Config.mk
++++++ xen-hvm-rep-movs.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -5,7 +5,7 @@
===================================================================
--- xen-unstable.orig/xen/arch/x86/hvm/platform.c
+++ xen-unstable/xen/arch/x86/hvm/platform.c
-@@ -884,7 +884,7 @@ void handle_mmio(unsigned long va, unsig
+@@ -881,7 +881,7 @@ void handle_mmio(unsigned long va, unsig
unsigned long count = GET_REPEAT_COUNT();
unsigned long size = mmio_inst.op_size;
int sign = regs->eflags & EF_DF ? -1 : 1;
@@ -14,7 +14,7 @@
int dir;
/* determine non-MMIO address */
-@@ -905,6 +905,13 @@ void handle_mmio(unsigned long va, unsig
+@@ -902,6 +902,13 @@ void handle_mmio(unsigned long va, unsig
addr = regs->edi;
}
}
@@ -28,7 +28,7 @@
mmio_opp->flags = mmio_inst.flags;
mmio_opp->instr = mmio_inst.instr;
-@@ -930,13 +937,13 @@ void handle_mmio(unsigned long va, unsig
+@@ -927,13 +934,13 @@ void handle_mmio(unsigned long va, unsig
hvm_copy(&value, addr, size, HVM_COPY_IN);
send_mmio_req(IOREQ_TYPE_COPY, gpa, 1, size, value, dir, 0);
} else {
++++++ xen-lost-mouse.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -9,7 +9,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/image.py
+++ xen-unstable/tools/python/xen/xend/image.py
-@@ -345,7 +345,7 @@ class HVMImageHandler(ImageHandler):
+@@ -374,7 +374,7 @@ class HVMImageHandler(ImageHandler):
import signal
if not self.pid:
return
++++++ xen-lowmem-emergency-pool.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -11,7 +11,7 @@
void __init paging_init(void)
{
void *ioremap_pt;
-@@ -128,6 +130,20 @@ void __init paging_init(void)
+@@ -129,6 +131,20 @@ void __init setup_idle_pagetable(void)
l2e_from_page(virt_to_page(idle_vcpu[0]->domain->
arch.mm_perdomain_pt) + i,
__PAGE_HYPERVISOR);
++++++ xen-max-free-mem.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/XendNode.py
+++ xen-unstable/tools/python/xen/xend/XendNode.py
-@@ -64,9 +64,30 @@ class XendNode:
+@@ -59,9 +59,30 @@ class XendNode:
info['cores_per_socket'] *
info['threads_per_core'])
info['cpu_mhz'] = info['cpu_khz'] / 1000
@@ -36,7 +36,7 @@
ITEM_ORDER = ['nr_cpus',
'nr_nodes',
-@@ -77,6 +98,9 @@ class XendNode:
+@@ -72,6 +93,9 @@ class XendNode:
'hw_caps',
'total_memory',
'free_memory',
@@ -78,7 +78,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-unstable/tools/python/xen/xend/XendDomainInfo.py
-@@ -984,6 +984,27 @@ class XendDomainInfo:
+@@ -993,6 +993,27 @@ class XendDomainInfo:
## public:
@@ -110,7 +110,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/server/SrvDomain.py
+++ xen-unstable/tools/python/xen/xend/server/SrvDomain.py
-@@ -159,7 +159,7 @@ class SrvDomain(SrvDir):
+@@ -147,7 +147,7 @@ class SrvDomain(SrvDir):
def op_mem_target_set(self, _, req):
++++++ xen-messages.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -22,7 +22,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xend/XendDomain.py
+++ xen-unstable/tools/python/xen/xend/XendDomain.py
-@@ -446,6 +446,8 @@ class XendDomain:
+@@ -447,6 +447,8 @@ class XendDomain:
if dominfo.getDomid() == PRIV_DOMAIN:
raise XendError("Cannot save privileged domain %s" % domid)
++++++ xen-network-bridge.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -89,7 +89,7 @@
===================================================================
--- xen-unstable.orig/tools/examples/xen-network-common.sh
+++ xen-unstable/tools/examples/xen-network-common.sh
-@@ -16,73 +16,36 @@
+@@ -16,57 +16,33 @@
#
@@ -102,6 +102,8 @@
+# interface name, e.g., "eth-id-00:e0:81:54:12:34").
-# Gentoo doesn't have ifup/ifdown, so we define appropriate alternatives.
+-
+-# Other platforms just use ifup / ifdown directly.
+preiftransfer()
+{
+ local HWD_CONFIG_0
@@ -111,10 +113,6 @@
+ fi
+}
--# Other platforms just use ifup / ifdown directly.
-+# Must specify "-o rc" so that ifplugd is started/stopped. If ifplugd is not
-+# stopped when doing ifdown, the interface is immediately brought back up!
-
-##
-# preiftransfer
-#
@@ -134,34 +132,18 @@
- }
-elif ! which ifup >/dev/null 2>/dev/null
-then
-- if [ -e /etc/conf.d/net ]
-- then
-- preiftransfer()
-- {
-- true
-- }
-- ifup()
-- {
-- /etc/init.d/net.$1 start
-- }
-- ifdown()
-- {
-- /etc/init.d/net.$1 stop
-- }
-- else
-- preiftransfer()
-- {
-- true
-- }
-- ifup()
-- {
-- false
-- }
-- ifdown()
-- {
-- false
-- }
-- fi
+- preiftransfer()
+- {
+- true
+- }
+- ifup()
+- {
+- false
+- }
+- ifdown()
+- {
+- false
+- }
-else
- preiftransfer()
- {
@@ -186,7 +168,7 @@
shift
for file in $@
do
-@@ -96,7 +59,7 @@ first_file()
+@@ -80,7 +56,7 @@ first_file()
find_dhcpd_conf_file()
{
++++++ xen-no-dummy-nfs-ip.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xm/create.py
+++ xen-unstable/tools/python/xen/xm/create.py
-@@ -805,9 +805,8 @@ def preprocess_access_control(vals):
+@@ -810,9 +810,8 @@ def preprocess_access_control(vals):
def preprocess_ip(vals):
if vals.ip or vals.dhcp != 'off':
++++++ xen-read-port-0x61.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- xen-unstable.orig/xen/arch/x86/traps.c
+++ xen-unstable/xen/arch/x86/traps.c
-@@ -993,7 +993,14 @@ static inline int admin_io_okay(
+@@ -1004,7 +1004,14 @@ static inline int admin_io_okay(
}
/* Check admin limits. Silently fail the access if it is disallowed. */
++++++ xen-shutdown-wait.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,19 +2,19 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xm/shutdown.py
+++ xen-unstable/tools/python/xen/xm/shutdown.py
-@@ -52,6 +52,8 @@ def shutdown(opts, doms, mode, wait):
- for d in doms:
- server.xend.domain.shutdown(d, mode)
- if wait:
-+ from xen.xend.xenstore.xstransact import xstransact
-+ doms_to_cleanup = doms[:]
- while doms:
- alive = server.xend.domains(0)
- dead = []
-@@ -62,6 +64,17 @@ def shutdown(opts, doms, mode, wait):
- opts.info("Domain %s terminated" % d)
- doms.remove(d)
- time.sleep(1)
+@@ -67,6 +67,8 @@ def wait_reboot(opts, doms, rcs):
+ opts.info("All domains rebooted")
+
+ def wait_shutdown(opts, doms):
++ from xen.xend.xenstore.xstransact import xstransact
++ doms_to_cleanup = doms[:]
+ while doms:
+ alive = server.xend.domains(0)
+ dead = []
+@@ -77,6 +79,17 @@ def wait_shutdown(opts, doms):
+ opts.info("Domain %s terminated" % d)
+ doms.remove(d)
+ time.sleep(1)
+ # Now all the domains are terminated, but wait until the devices are
+ # cleaned up.
+ for d in doms_to_cleanup:
@@ -26,6 +26,6 @@
+ if len(devices) == 0:
+ break
+ time.sleep(1)
- opts.info("All domains terminated")
+ opts.info("All domains terminated")
- def shutdown_mode(opts):
+ def shutdown(opts, doms, mode, wait):
++++++ xen-tightvnc-args.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:28.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:28.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- xen-unstable.orig/tools/python/xen/xm/create.py
+++ xen-unstable/tools/python/xen/xm/create.py
-@@ -901,8 +901,7 @@ def spawn_vnc(display):
+@@ -906,8 +906,7 @@ def spawn_vnc(display):
returns the port that the vncviewer is listening on and sets the global
vncpid. On failure, returns 0. Note that vncviewer is daemonized.
"""
++++++ xen-unstable-src.tar.bz2 ++++++
++++ 56176 lines of diff (skipped)
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.pPPnBc/_old 2006-09-02 19:04:45.000000000 +0200
+++ /var/tmp/diff_new_pack.pPPnBc/_new 2006-09-02 19:04:45.000000000 +0200
@@ -12,91 +12,6 @@
}
return -1;
}
-Index: xen-unstable/xen/arch/x86/shadow.c
-===================================================================
---- xen-unstable.orig/xen/arch/x86/shadow.c
-+++ xen-unstable/xen/arch/x86/shadow.c
-@@ -597,7 +597,7 @@ static void shadow_map_l1_into_current_l
- unsigned long gl1pfn, gl1mfn, sl1mfn;
- int i, init_table = 0;
-
-- __guest_get_l2e(v, va, &gl2e);
-+ (void)__guest_get_l2e(v, va, &gl2e);
- ASSERT(guest_l2e_get_flags(gl2e) & _PAGE_PRESENT);
- gl1pfn = l2e_get_pfn(gl2e);
-
-@@ -649,7 +649,7 @@ static void shadow_map_l1_into_current_l
- if ( !get_shadow_ref(sl1mfn))
- BUG();
- l2pde_general(d, &gl2e, &sl2e, sl1mfn);
-- __guest_set_l2e(v, va, &gl2e);
-+ (void)__guest_set_l2e(v, va, &gl2e);
- __shadow_set_l2e(v, va & ~((1<