Hello community,
here is the log from the commit of package xen
checked in at Wed Sep 27 01:23:33 CEST 2006.
--------
--- arch/i386/xen/xen.changes 2006-09-25 23:53:49.000000000 +0200
+++ /mounts/work_src_done/STABLE/xen/xen.changes 2006-09-27 00:02:33.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 26 09:07:41 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 11623.
+- Fix domUloader typo introduced in last update.
+- Build debug version of xen-pae.
+
+-------------------------------------------------------------------
Old:
----
xen-enable-debug
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.K6zy9R/_old 2006-09-27 01:22:48.000000000 +0200
+++ /var/tmp/diff_new_pack.K6zy9R/_new 2006-09-27 01:22:48.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package xen (Version 3.0.3_11616)
+# spec file for package xen (Version 3.0.3_11623)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -14,11 +14,11 @@
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 11616
+%define changeset 11623
%define with_pygrub 1
%define with_vfb 1
%define xen_build_dir xen-unstable
-Version: 3.0.3_11616
+Version: 3.0.3_11623
Release: 1
License: GPL
Group: System/Kernel
@@ -82,8 +82,7 @@
Patch108: xen-no-pgt-high-mfn.patch
Patch109: xen-wider-mfn.patch
## Debugging:
-Patch200: xen-enable-debug
-Patch201: xen-enable-hvm-debug.diff
+Patch200: xen-enable-hvm-debug.diff
## Future / need to be re-ported:
Patch300: xen-poweroff.diff
URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
@@ -451,11 +450,7 @@
%patch28 -p1
%patch29 -p1
%patch30 -p1
-## need to forward-port
#%patch31 -p1
-# Debugging
-%patch200 -p1
-#patch201 -p1
XEN_EXTRAVERSION=%version-%release
XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}}
sed -i "s/XEN_EXTRAVERSION[ ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile
@@ -465,49 +460,56 @@
test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
export CFLAGS="$RPM_OPT_FLAGS"
export RPM_OPT_FLAGS
-#export PYTHONOPTIMIZE=2
-make xen tools docs debug=y
-make -C docs dev-docs
+make tools docs
%install
-# Build debug version
-#export PYTHONOPTIMIZE=2
export CFLAGS="$RPM_OPT_FLAGS"
export RPM_OPT_FLAGS
+install_xen()
+{
+ local ext=""
+ if [ -n "$1" ]; then
+ ext="-$1"
+ mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}.gz \
+ $RPM_BUILD_ROOT/boot/xen${ext}-%{version}-%{release}.gz
+ mv $RPM_BUILD_ROOT/boot/xen-syms-%{version}-%{release} \
+ $RPM_BUILD_ROOT/boot/xen-syms${ext}-%{version}-%{release}
+ fi
+ rm $RPM_BUILD_ROOT/boot/xen-%{xvers}.gz
+ rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}.gz
+ rm $RPM_BUILD_ROOT/boot/xen.gz
+ # Do not link to links; grub cannot follow.
+ ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvers}.gz
+ ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}-%{xvermaj}.gz
+ ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}.gz
+ ln -sf xen-syms${ext}-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms${ext}
+}
+%ifarch %ix86
+make -C xen install pae=y debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT
+install_xen pae-dbg
+make -C xen clean
+make -C xen install pae=y debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT
+install_xen pae
+make -C xen clean
+%endif
+make -C xen install pae=n debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT
+install_xen dbg
+make -C xen clean
+make -C xen install pae=n debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT
+install_xen
+make -C xen clean
+# tools
export XEN_PYTHON_NATIVE_INSTALL=1
+export PYTHONOPTIMIZE=1
mkdir -p $RPM_BUILD_ROOT/%pysite/xen
-make -C xen install debug=y \
- DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
make -C tools install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
-%if %{?with_pygrub}0
-make -C tools/pygrub install \
- DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
-%endif
make -C tools/misc/serial-split install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
-mv $RPM_BUILD_ROOT/boot/xen-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-dbg-%{version}-%{release}.gz
-rm $RPM_BUILD_ROOT/boot/xen-%{xvers}.gz; ln -s xen-dbg-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-dbg-%{xvers}.gz
-rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}.gz; ln -s xen-dbg-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-dbg-%{xvermaj}.gz
-mv $RPM_BUILD_ROOT/boot/xen-syms-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms-dbg-%{version}-%{release}
-patch -p1 -R <%PATCH200
-%ifarch %ix86
-# Build PAE, non-debug version
-make -C xen clean
-make xen pae=y
-make -C xen install pae=y \
+%if %{?with_pygrub}0
+make -C tools/pygrub install \
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
-rm $RPM_BUILD_ROOT/boot/xen-%{xvermaj}.gz; ln -s xen-pae-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-pae-%{xvermaj}.gz
-mv $RPM_BUILD_ROOT/boot/xen-syms-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms-pae-%{version}-%{release}
%endif
-# Build non-debug version
-make -C xen clean
-make xen
-make -C xen install \
- DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir}
-# tools
%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
@@ -521,7 +523,7 @@
sh ./docs/check_pkgs \
&& make -C docs install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
- DOCDIR=%{_defaultdocdir}/%{name} \
+ DOCDIR=%{_defaultdocdir}/xen \
|| true
for name in COPYING %SOURCE2 %SOURCE3; do
cp -p $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
@@ -559,33 +561,19 @@
ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images
# Bootloader
install -m755 %SOURCE9 $RPM_BUILD_ROOT/usr/lib/xen/boot/
+# udev support
+mv $RPM_BUILD_ROOT/etc/udev/rules.d/xen-backend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xen.rules
# Clean up unpackaged files
-# dups /etc/xen/scripts/* func:
-rm $RPM_BUILD_ROOT/usr/sbin/netfix
rm $RPM_BUILD_ROOT/usr/bin/xc_shadow
+rm $RPM_BUILD_ROOT/usr/sbin/netfix
rm -rf $RPM_BUILD_ROOT/usr/share/doc/qemu/
rm $RPM_BUILD_ROOT/%{_mandir}/man1/qemu.*
-# broken on 64 bit; not worth packaging:
rm $RPM_BUILD_ROOT/usr/lib*/xen/bin/qemu-dm.debug
-# Python 2.5 feature; unneeded in an RPM
rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
%if ! %{?with_pygrub}0
rm -rf $RPM_BUILD_ROOT/%pysite/grub
rm $RPM_BUILD_ROOT/usr/bin/pygrub
%endif
-# udev support
-mv $RPM_BUILD_ROOT/etc/udev/rules.d/xen-backend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xen.rules
-ls -l $RPM_BUILD_ROOT/boot/xen.gz
-# Created in %post
-rm $RPM_BUILD_ROOT/boot/xen.gz
-ln -sf xen-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen.gz
-ln -sf xen-syms-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms
-%ifarch %ix86
-ln -sf xen-pae-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-pae.gz
-ln -sf xen-syms-pae-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms-pae
-%endif
-ln -sf xen-dbg-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen-dbg.gz
-ln -sf xen-syms-dbg-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms-dbg
%files
%defattr(-,root,root)
@@ -608,6 +596,12 @@
/boot/xen-pae.gz
/boot/xen-syms-pae-%{version}-%{release}
/boot/xen-syms-pae
+/boot/xen-pae-dbg-%{version}-%{release}.gz
+/boot/xen-pae-dbg-%{xvers}.gz
+/boot/xen-pae-dbg-%{xvermaj}.gz
+/boot/xen-pae-dbg.gz
+/boot/xen-syms-pae-dbg-%{version}-%{release}
+/boot/xen-syms-pae-dbg
%endif
%files libs
@@ -755,6 +749,10 @@
%{insserv_cleanup}
%changelog -n xen
+* Tue Sep 26 2006 - ccoffing@novell.com
+- Update to xen-unstable changeset 11623.
+- Fix domUloader typo introduced in last update.
+- Build debug version of xen-pae.
* Mon Sep 25 2006 - ccoffing@novell.com
- Update to xen-unstable changeset 11616.
* Tue Sep 12 2006 - ccoffing@novell.com
++++++ init.xendomains ++++++
--- arch/i386/xen/init.xendomains 2006-08-30 23:05:59.000000000 +0200
+++ /mounts/work_src_done/STABLE/xen/init.xendomains 2006-09-26 19:59:54.000000000 +0200
@@ -105,9 +105,9 @@
parseln()
{
- name=`echo "$1" | cut -c0-17` # FIXME: can be longer than this
+ name=`echo "$1" | cut -c0-49`
name=${name%% *}
- rest=`echo "$1" | cut -c18- `
+ rest=`echo "$1" | cut -c40- `
read id mem vcpu state tm < <(echo "$rest")
}
++++++ xen-domUloader.diff ++++++
--- /var/tmp/diff_new_pack.K6zy9R/_old 2006-09-27 01:22:49.000000000 +0200
+++ /var/tmp/diff_new_pack.K6zy9R/_new 2006-09-27 01:22:49.000000000 +0200
@@ -7,8 +7,8 @@
"--entry= directly.")
vals.bootargs = "--entry=%s" %(vals.bootentry,)
+ if vals.root:
-+ vals.bootargs += " --root=%s" % vals.root.split()[0])
-+ vals.bootargs += " --disks=\"%s\"" % str(vals.disk))
++ vals.bootargs += " --root=%s" % vals.root.split()[0]
++ vals.bootargs += " --disks=\"%s\"" % str(vals.disk)
return bootloader(vals.bootloader, file, not vals.console_autoconnect,
- vals.bootargs, config_image)
++++++ xen-io-register-context.diff ++++++
--- /var/tmp/diff_new_pack.K6zy9R/_old 2006-09-27 01:22:49.000000000 +0200
+++ /var/tmp/diff_new_pack.K6zy9R/_new 2006-09-27 01:22:49.000000000 +0200
@@ -1,10 +1,10 @@
From: Jan Beulich
Bugzilla #192150
-Index: 2006-09-21/xen/arch/x86/domain_build.c
+Index: xen-unstable/xen/arch/x86/domain_build.c
===================================================================
---- 2006-09-21.orig/xen/arch/x86/domain_build.c 2006-09-20 13:19:25.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/domain_build.c 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/domain_build.c
++++ xen-unstable/xen/arch/x86/domain_build.c
@@ -33,6 +33,11 @@
extern unsigned long initial_images_nrpages(void);
extern void discard_initial_images(void);
@@ -136,10 +136,10 @@
BUG_ON(rc != 0);
return 0;
-Index: 2006-09-21/xen/arch/x86/sysctl.c
+Index: xen-unstable/xen/arch/x86/sysctl.c
===================================================================
---- 2006-09-21.orig/xen/arch/x86/sysctl.c 2006-08-28 08:32:37.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/sysctl.c 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/sysctl.c
++++ xen-unstable/xen/arch/x86/sysctl.c
@@ -57,6 +57,23 @@ long arch_do_sysctl(
}
break;
@@ -164,10 +164,10 @@
default:
ret = -ENOSYS;
-Index: 2006-09-21/xen/arch/x86/traps.c
+Index: xen-unstable/xen/arch/x86/traps.c
===================================================================
---- 2006-09-21.orig/xen/arch/x86/traps.c 2006-09-20 13:19:25.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/traps.c 2006-09-21 11:02:36.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/traps.c
++++ xen-unstable/xen/arch/x86/traps.c
@@ -1002,9 +1002,20 @@ static inline int admin_io_okay(
return ioports_access_permitted(v->domain, port, port + bytes - 1);
}
@@ -376,10 +376,10 @@
goto exec_out;
case 0xfa: /* CLI */
-Index: 2006-09-21/xen/arch/x86/x86_32/Makefile
+Index: xen-unstable/xen/arch/x86/x86_32/Makefile
===================================================================
---- 2006-09-21.orig/xen/arch/x86/x86_32/Makefile 2006-04-06 10:58:00.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/x86_32/Makefile 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/x86_32/Makefile
++++ xen-unstable/xen/arch/x86/x86_32/Makefile
@@ -1,5 +1,6 @@
obj-y += domain_page.o
obj-y += entry.o
@@ -387,10 +387,10 @@
obj-y += mm.o
obj-y += seg_fixup.o
obj-y += traps.o
-Index: 2006-09-21/xen/arch/x86/x86_32/io.S
+Index: xen-unstable/xen/arch/x86/x86_32/io.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ 2006-09-21/xen/arch/x86/x86_32/io.S 2006-09-21 10:56:11.000000000 +0200
+--- /dev/null
++++ xen-unstable/xen/arch/x86/x86_32/io.S
@@ -0,0 +1,42 @@
+/*
+ * Special (full-context) I/O handling routines.
@@ -434,10 +434,10 @@
+ movl %ecx, UREGS_ecx(%edx)
+ popl %ecx
+ ret
-Index: 2006-09-21/xen/arch/x86/x86_32/traps.c
+Index: xen-unstable/xen/arch/x86/x86_32/traps.c
===================================================================
---- 2006-09-21.orig/xen/arch/x86/x86_32/traps.c 2006-09-11 09:06:11.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/x86_32/traps.c 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/x86_32/traps.c
++++ xen-unstable/xen/arch/x86/x86_32/traps.c
@@ -13,6 +13,7 @@
#include
#include
@@ -483,19 +483,19 @@
}
void init_int80_direct_trap(struct vcpu *v)
-Index: 2006-09-21/xen/arch/x86/x86_64/Makefile
+Index: xen-unstable/xen/arch/x86/x86_64/Makefile
===================================================================
---- 2006-09-21.orig/xen/arch/x86/x86_64/Makefile 2006-04-06 10:58:00.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/x86_64/Makefile 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/x86_64/Makefile
++++ xen-unstable/xen/arch/x86/x86_64/Makefile
@@ -1,3 +1,4 @@
obj-y += entry.o
+obj-y += io.o
obj-y += mm.o
obj-y += traps.o
-Index: 2006-09-21/xen/arch/x86/x86_64/io.S
+Index: xen-unstable/xen/arch/x86/x86_64/io.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ 2006-09-21/xen/arch/x86/x86_64/io.S 2006-09-21 10:56:11.000000000 +0200
+--- /dev/null
++++ xen-unstable/xen/arch/x86/x86_64/io.S
@@ -0,0 +1,62 @@
+/*
+ * Special (full-context) I/O handling routines.
@@ -559,10 +559,10 @@
+ movq %rcx, UREGS_rcx(%rdi)
+ popq %rcx
+ ret
-Index: 2006-09-21/xen/arch/x86/x86_64/traps.c
+Index: xen-unstable/xen/arch/x86/x86_64/traps.c
===================================================================
---- 2006-09-21.orig/xen/arch/x86/x86_64/traps.c 2006-09-20 13:19:25.000000000 +0200
-+++ 2006-09-21/xen/arch/x86/x86_64/traps.c 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/arch/x86/x86_64/traps.c
++++ xen-unstable/xen/arch/x86/x86_64/traps.c
@@ -14,6 +14,7 @@
#include
#include
@@ -601,10 +601,10 @@
}
static long register_guest_callback(struct callback_register *reg)
-Index: 2006-09-21/xen/include/asm-x86/io.h
+Index: xen-unstable/xen/include/asm-x86/io.h
===================================================================
---- 2006-09-21.orig/xen/include/asm-x86/io.h 2006-08-21 18:02:24.000000000 +0200
-+++ 2006-09-21/xen/include/asm-x86/io.h 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/include/asm-x86/io.h
++++ xen-unstable/xen/include/asm-x86/io.h
@@ -50,4 +50,10 @@ __OUT(b,"b",char)
__OUT(w,"w",short)
__OUT(l,,int)
@@ -616,10 +616,10 @@
+extern long io_emul_stub_offset, io_emul_insn_offset;
+
#endif
-Index: 2006-09-21/xen/include/asm-x86/iocap.h
+Index: xen-unstable/xen/include/asm-x86/iocap.h
===================================================================
---- 2006-09-21.orig/xen/include/asm-x86/iocap.h 2006-01-03 14:25:46.000000000 +0100
-+++ 2006-09-21/xen/include/asm-x86/iocap.h 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/include/asm-x86/iocap.h
++++ xen-unstable/xen/include/asm-x86/iocap.h
@@ -7,6 +7,15 @@
#ifndef __X86_IOCAP_H__
#define __X86_IOCAP_H__
@@ -650,10 +650,10 @@
#define cache_flush_permitted(d) \
(!rangeset_is_empty((d)->iomem_caps))
-Index: 2006-09-21/xen/include/public/sysctl.h
+Index: xen-unstable/xen/include/public/sysctl.h
===================================================================
---- 2006-09-21.orig/xen/include/public/sysctl.h 2006-09-11 09:06:11.000000000 +0200
-+++ 2006-09-21/xen/include/public/sysctl.h 2006-09-21 10:56:11.000000000 +0200
+--- xen-unstable.orig/xen/include/public/sysctl.h
++++ xen-unstable/xen/include/public/sysctl.h
@@ -122,6 +122,15 @@ struct xen_sysctl_getdomaininfolist {
typedef struct xen_sysctl_getdomaininfolist xen_sysctl_getdomaininfolist_t;
DEFINE_XEN_GUEST_HANDLE(xen_sysctl_getdomaininfolist_t);
++++++ xen-removable.diff ++++++
++++ 1031 lines (skipped)
++++ between arch/i386/xen/xen-removable.diff
++++ and /mounts/work_src_done/STABLE/xen/xen-removable.diff
++++++ xen-unstable-src.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/ChangeLog new/xen-unstable/ChangeLog
--- old/xen-unstable/ChangeLog 2006-09-25 23:39:31.000000000 +0200
+++ new/xen-unstable/ChangeLog 2006-09-26 19:38:52.000000000 +0200
@@ -1,5 +1,5 @@
-changeset: 11616:7de1715d185e
+changeset: 11623:a1154318cd80
tag: tip
-user: kfraser@localhost.localdomain
-date: Mon Sep 25 18:19:30 2006 +0100
-summary: [VMXASSIST] Fix virt-to-phys translation routine.
+user: Steven Smith
+date: Tue Sep 26 16:47:35 2006 +0100
+summary: [HVM][VNC] Work around a bug in the newest version of xvncviewer which
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/docs/man/xm.pod.1 new/xen-unstable/docs/man/xm.pod.1
--- old/xen-unstable/docs/man/xm.pod.1 2006-09-11 17:39:04.000000000 +0200
+++ new/xen-unstable/docs/man/xm.pod.1 2006-09-26 19:38:33.000000000 +0200
@@ -393,7 +393,9 @@
=item B<vcpu-pin> I<domain-id> I<vcpu> I<cpus>
-Pins the the VCPU to only run on the specific CPUs.
+Pins the the VCPU to only run on the specific CPUs. The keyword
+I<all> can be used to apply the I<cpus> list to all VCPUs in the
+domain.
Normally VCPUs can float between available CPUs whenever Xen deems a
different run state is appropriate. Pinning can be used to restrict
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/firmware/vmxassist/vm86.c new/xen-unstable/tools/firmware/vmxassist/vm86.c
--- old/xen-unstable/tools/firmware/vmxassist/vm86.c 2006-09-25 23:39:22.000000000 +0200
+++ new/xen-unstable/tools/firmware/vmxassist/vm86.c 2006-09-26 19:38:33.000000000 +0200
@@ -95,7 +95,7 @@
if (!(l1_mfn & PT_ENTRY_PRESENT))
panic("l2 entry not present\n");
- if ((oldctx.cr4 & CR4_PSE) && (l1_mfn & PDE_PS)) {
+ if (l1_mfn & PDE_PS) { /* CR4.PSE is ignored in PAE mode */
l0_mfn = l1_mfn & 0x3ffe00000ULL;
return l0_mfn + (base & 0x1fffff);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/ioemu/vl.c new/xen-unstable/tools/ioemu/vl.c
--- old/xen-unstable/tools/ioemu/vl.c 2006-09-25 18:00:28.000000000 +0200
+++ new/xen-unstable/tools/ioemu/vl.c 2006-09-26 19:38:33.000000000 +0200
@@ -727,7 +727,7 @@
void qemu_advance_timer(QEMUTimer *ts, int64_t expire_time)
{
- if (ts->expire_time > expire_time)
+ if (ts->expire_time > expire_time || !qemu_timer_pending(ts))
qemu_mod_timer(ts, expire_time);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/ioemu/vnc.c new/xen-unstable/tools/ioemu/vnc.c
--- old/xen-unstable/tools/ioemu/vnc.c 2006-09-25 18:00:28.000000000 +0200
+++ new/xen-unstable/tools/ioemu/vnc.c 2006-09-26 19:38:33.000000000 +0200
@@ -26,6 +26,7 @@
#include "vl.h"
#include "qemu_socket.h"
+#include
/* The refresh interval starts at BASE. If we scan the buffer and
find no change, we increase by INC, up to MAX. If the mouse moves
@@ -580,12 +581,16 @@
interested (e.g. minimised) it'll ignore this, and we
can stop scanning the buffer until it sends another
update request. */
- /* Note that there are bugs in xvncviewer which prevent
- this from actually working. Leave the code in place
- for correct clients. */
+ /* It turns out that there's a bug in realvncviewer 4.1.2
+ which means that if you send a proper null update (with
+ no update rectangles), it gets a bit out of sync and
+ never sends any further requests, regardless of whether
+ it needs one or not. Fix this by sending a single 1x1
+ update rectangle instead. */
vnc_write_u8(vs, 0);
vnc_write_u8(vs, 0);
- vnc_write_u16(vs, 0);
+ vnc_write_u16(vs, 1);
+ send_framebuffer_update(vs, 0, 0, 1, 1);
vnc_flush(vs);
vs->last_update_time = now;
return;
@@ -728,8 +733,10 @@
memmove(vs->input.buffer, vs->input.buffer + len,
vs->input.offset - len);
vs->input.offset -= len;
- } else
+ } else {
+ assert(ret > vs->read_handler_expect);
vs->read_handler_expect = ret;
+ }
}
}
@@ -1076,8 +1083,12 @@
if (len == 1)
return 4;
- if (len == 4)
- return 4 + (read_u16(data, 2) * 4);
+ if (len == 4) {
+ uint16_t v;
+ v = read_u16(data, 2);
+ if (v)
+ return 4 + v * 4;
+ }
limit = read_u16(data, 2);
for (i = 0; i < limit; i++) {
@@ -1117,8 +1128,12 @@
if (len == 1)
return 8;
- if (len == 8)
- return 8 + read_u32(data, 4);
+ if (len == 8) {
+ uint32_t v;
+ v = read_u32(data, 4);
+ if (v)
+ return 8 + 4;
+ }
client_cut_text(vs, read_u32(data, 4), data + 8);
break;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/python/xen/xend/XendDomain.py new/xen-unstable/tools/python/xen/xend/XendDomain.py
--- old/xen-unstable/tools/python/xen/xend/XendDomain.py 2006-09-25 18:00:29.000000000 +0200
+++ new/xen-unstable/tools/python/xen/xend/XendDomain.py 2006-09-26 19:38:33.000000000 +0200
@@ -487,10 +487,19 @@
if not dominfo:
raise XendInvalidDomain(str(domid))
- try:
- return xc.vcpu_setaffinity(dominfo.getDomid(), vcpu, cpumap)
- except Exception, ex:
- raise XendError(str(ex))
+ # if vcpu is keyword 'all', apply the cpumap to all vcpus
+ vcpus = [ vcpu ]
+ if str(vcpu).lower() == "all":
+ vcpus = range(0, int(dominfo.getVCpuCount()))
+
+ # set the same cpumask for all vcpus
+ rc = 0
+ for v in vcpus:
+ try:
+ rc = xc.vcpu_setaffinity(dominfo.getDomid(), int(v), cpumap)
+ except Exception, ex:
+ raise XendError(str(ex))
+ return rc
def domain_cpu_sedf_set(self, domid, period, slice_, latency, extratime,
weight):
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/python/xen/xend/server/SrvDomain.py new/xen-unstable/tools/python/xen/xend/server/SrvDomain.py
--- old/xen-unstable/tools/python/xen/xend/server/SrvDomain.py 2006-08-28 21:08:04.000000000 +0200
+++ new/xen-unstable/tools/python/xen/xend/server/SrvDomain.py 2006-09-26 19:38:33.000000000 +0200
@@ -97,7 +97,7 @@
def op_pincpu(self, _, req):
fn = FormFn(self.xd.domain_pincpu,
[['dom', 'int'],
- ['vcpu', 'int'],
+ ['vcpu', 'str'],
['cpumap', 'str']])
val = fn(req.args, {'dom': self.dom.domid})
return val
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/tools/python/xen/xm/main.py new/xen-unstable/tools/python/xen/xm/main.py
--- old/xen-unstable/tools/python/xen/xm/main.py 2006-09-25 18:00:29.000000000 +0200
+++ new/xen-unstable/tools/python/xen/xm/main.py 2006-09-26 19:38:33.000000000 +0200
@@ -759,12 +759,16 @@
for i in range(int(x),int(y)+1):
cpus.append(int(i))
else:
- cpus.append(int(c))
+ # remove this element from the list
+ if c[0] == '^':
+ cpus = [x for x in cpus if x != int(c[1:])]
+ else:
+ cpus.append(int(c))
cpus.sort()
return cpus
dom = args[0]
- vcpu = int(args[1])
+ vcpu = args[1]
cpumap = cpu_make_map(args[2])
server.xend.domain.pincpu(dom, vcpu, cpumap)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/xen/arch/x86/hvm/hvm.c new/xen-unstable/xen/arch/x86/hvm/hvm.c
--- old/xen-unstable/xen/arch/x86/hvm/hvm.c 2006-09-19 01:10:00.000000000 +0200
+++ new/xen-unstable/xen/arch/x86/hvm/hvm.c 2006-09-26 19:38:33.000000000 +0200
@@ -337,6 +337,33 @@
return -1;
}
+static void hvm_vcpu_down(void)
+{
+ struct vcpu *v = current;
+ struct domain *d = v->domain;
+ int online_count = 0;
+
+ DPRINTK("DOM%d/VCPU%d: going offline.\n", d->domain_id, v->vcpu_id);
+
+ /* Doesn't halt us immediately, but we'll never return to guest context. */
+ set_bit(_VCPUF_down, &v->vcpu_flags);
+ vcpu_sleep_nosync(v);
+
+ /* Any other VCPUs online? ... */
+ LOCK_BIGLOCK(d);
+ for_each_vcpu ( d, v )
+ if ( !test_bit(_VCPUF_down, &v->vcpu_flags) )
+ online_count++;
+ UNLOCK_BIGLOCK(d);
+
+ /* ... Shut down the domain if not. */
+ if ( online_count == 0 )
+ {
+ DPRINTK("DOM%d: all CPUs offline -- powering off.\n", d->domain_id);
+ domain_shutdown(d, SHUTDOWN_poweroff);
+ }
+}
+
void hvm_hlt(unsigned long rflags)
{
struct vcpu *v = current;
@@ -344,18 +371,12 @@
s_time_t next_pit = -1, next_wakeup;
/*
- * Detect machine shutdown. Only do this for vcpu 0, to avoid potentially
- * shutting down the domain early. If we halt with interrupts disabled,
- * that's a pretty sure sign that we want to shut down. In a real
- * processor, NMIs are the only way to break out of this.
+ * If we halt with interrupts disabled, that's a pretty sure sign that we
+ * want to shut down. In a real processor, NMIs are the only way to break
+ * out of this.
*/
- if ( (v->vcpu_id == 0) && !(rflags & X86_EFLAGS_IF) )
- {
- printk("D%d: HLT with interrupts disabled -- shutting down.\n",
- current->domain->domain_id);
- domain_shutdown(current->domain, SHUTDOWN_poweroff);
- return;
- }
+ if ( unlikely(!(rflags & X86_EFLAGS_IF)) )
+ return hvm_vcpu_down();
if ( !v->vcpu_id )
next_pit = get_scheduled(v, pt->irq, pt);
@@ -578,17 +599,20 @@
struct vcpu_guest_context *ctxt;
int rc = 0;
- /* current must be HVM domain BSP */
- if ( !(hvm_guest(bsp) && bsp->vcpu_id == 0) ) {
- printk("Not calling hvm_bringup_ap from BSP context.\n");
+ BUG_ON(!hvm_guest(bsp));
+
+ if ( bsp->vcpu_id != 0 )
+ {
+ DPRINTK("Not calling hvm_bringup_ap from BSP context.\n");
domain_crash_synchronous();
}
if ( (v = d->vcpu[vcpuid]) == NULL )
return -ENOENT;
- if ( (ctxt = xmalloc(struct vcpu_guest_context)) == NULL ) {
- printk("Failed to allocate memory in hvm_bringup_ap.\n");
+ if ( (ctxt = xmalloc(struct vcpu_guest_context)) == NULL )
+ {
+ DPRINTK("Failed to allocate memory in hvm_bringup_ap.\n");
return -ENOMEM;
}
@@ -601,13 +625,15 @@
UNLOCK_BIGLOCK(d);
if ( rc != 0 )
- printk("AP %d bringup failed in boot_vcpu %x.\n", vcpuid, rc);
- else {
- if ( test_and_clear_bit(_VCPUF_down, &d->vcpu[vcpuid]->vcpu_flags) )
- vcpu_wake(d->vcpu[vcpuid]);
- printk("AP %d bringup suceeded.\n", vcpuid);
+ {
+ DPRINTK("AP %d bringup failed in boot_vcpu %x.\n", vcpuid, rc);
+ return rc;
}
+ if ( test_and_clear_bit(_VCPUF_down, &d->vcpu[vcpuid]->vcpu_flags) )
+ vcpu_wake(d->vcpu[vcpuid]);
+ DPRINTK("AP %d bringup suceeded.\n", vcpuid);
+
xfree(ctxt);
return rc;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xen-unstable/xen/common/gdbstub.c new/xen-unstable/xen/common/gdbstub.c
--- old/xen-unstable/xen/common/gdbstub.c 2006-09-25 18:00:29.000000000 +0200
+++ new/xen-unstable/xen/common/gdbstub.c 2006-09-26 19:38:33.000000000 +0200
@@ -53,6 +53,8 @@
static char opt_gdb[30] = "none";
string_param("gdb", opt_gdb);
+static void gdbstub_console_puts(const char *str);
+
/* value <-> char (de)serialzers */
char
hex2char(unsigned long x)
@@ -360,7 +362,6 @@
static void
gdbstub_attach(struct gdb_context *ctx)
{
- static void gdbstub_console_puts(const char *str);
if ( ctx->currently_attached )
return;
ctx->currently_attached = 1;
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.K6zy9R/_old 2006-09-27 01:23:12.000000000 +0200
+++ /var/tmp/diff_new_pack.K6zy9R/_new 2006-09-27 01:23:12.000000000 +0200
@@ -40,19 +40,3 @@
}
wait(NULL); /* wait for child to die or it will become a zombie */
break;
-Index: xen-unstable/xen/common/gdbstub.c
-===================================================================
---- xen-unstable.orig/xen/common/gdbstub.c
-+++ xen-unstable/xen/common/gdbstub.c
-@@ -357,10 +357,10 @@ gdb_cmd_write_mem(unsigned long addr, un
- gdb_send_packet(ctx);
- }
-
-+static void gdbstub_console_puts(const char *str);
- static void
- gdbstub_attach(struct gdb_context *ctx)
- {
-- static void gdbstub_console_puts(const char *str);
- if ( ctx->currently_attached )
- return;
- ctx->currently_attached = 1;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org