Hello community,
here is the log from the commit of package xen for openSUSE:Factory
checked in at Thu Dec 2 17:13:22 CET 2010.
--------
--- xen/xen.changes 2010-11-19 21:15:41.000000000 +0100
+++ xen/xen.changes 2010-12-01 00:19:01.000000000 +0100
@@ -1,0 +2,33 @@
+Tue Nov 30 13:44:35 MST 2010 - carnold@novell.com
+
+- bnc#655438 - Using performance counter in domU on Nehalem cpus
+ 22417-vpmu-nehalem.patch
+- Upstream patches from Jan
+ 22389-amd-iommu-decls.patch
+ 22416-acpi-check-mwait.patch
+ 22431-p2m-remove-bug-check.patch
+
+-------------------------------------------------------------------
+Tue Nov 30 06:46:28 MST 2010 - carnold@novell.com
+
+- bnc#656245 - VUL-1: hypervisor: application or kernel in any pv
+ Xen domain can crash Xen
+ x86_64-gdt-ldt-fault-filter.patch
+
+-------------------------------------------------------------------
+Mon Nov 29 10:06:49 MST 2010 - carnold@novell.com
+
+- bnc#654050 - Python: a crasher bug in pyexpat - upstream patch
+ needs backporting
+ 22235-lxml-validator.patch
+
+-------------------------------------------------------------------
+Tue Nov 23 15:46:09 MST 2010 - jfehlig@novell.com
+
+- bnc#628729 - Add a small, fast alternative to 'xm list' for
+ enumerating active domains. xen-list is a C program that uses
+ libxenstore and libxenctl directly, bypassing the python
+ toolstack.
+ xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
22235-lxml-validator.patch
22389-amd-iommu-decls.patch
22416-acpi-check-mwait.patch
22417-vpmu-nehalem.patch
22431-p2m-remove-bug-check.patch
x86_64-gdt-ldt-fault-filter.patch
xen-utils-0.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xen.spec ++++++
--- /var/tmp/diff_new_pack.llC1ey/_old 2010-12-02 17:11:28.000000000 +0100
+++ /var/tmp/diff_new_pack.llC1ey/_new 2010-12-02 17:11:28.000000000 +0100
@@ -70,7 +70,7 @@
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
%endif
Version: 4.0.1_01
-Release: 4
+Release: 5
License: GPLv2+
Group: System/Kernel
AutoReqProv: on
@@ -78,28 +78,29 @@
Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
Source0: xen-4.0.1-testing-src.tar.bz2
Source1: stubdom.tar.bz2
-Source2: README.SuSE
-Source3: boot.xen
-Source4: boot.local.xenU
-Source5: init.xend
-Source6: init.xendomains
-Source7: logrotate.conf
-Source8: domUloader.py
-Source9: xmexample.domUloader
-Source10: xmexample.disks
-Source11: block-nbd
-Source12: block-iscsi
-Source13: block-npiv-common.sh
-Source14: block-npiv
-Source15: block-npiv-vport
-Source16: xmclone.sh
-Source17: xend-relocation.sh
-Source18: init.xen_loop
+Source2: xen-utils-0.1.tar.bz2
+Source3: README.SuSE
+Source4: boot.xen
+Source5: boot.local.xenU
+Source6: init.xend
+Source7: init.xendomains
+Source8: logrotate.conf
+Source9: domUloader.py
+Source10: xmexample.domUloader
+Source11: xmexample.disks
+Source12: block-nbd
+Source13: block-iscsi
+Source14: block-npiv-common.sh
+Source15: block-npiv
+Source16: block-npiv-vport
+Source17: xmclone.sh
+Source18: xend-relocation.sh
+Source19: init.xen_loop
%if %{?with_kmp}0
-Source19: xen_pvdrivers.conf
-Source20: kmp_filelist
+Source20: xen_pvdrivers.conf
+Source21: kmp_filelist
%endif
-Source21: block-dmmd
+Source22: block-dmmd
# Xen API remote authentication sources
Source23: etc_pam.d_xen-api
Source24: xenapiusers
@@ -147,10 +148,15 @@
Patch38: 22223-vtd-workarounds.patch
Patch39: 22231-x86-pv-ucode-msr-intel.patch
Patch40: 22232-x86-64-lahf-lm-bios-workaround.patch
-Patch41: 22280-kexec.patch
-Patch42: 22337-vtd-scan-single-func.patch
-Patch43: 22348-vtd-check-secbus-devfn.patch
-Patch44: 22369-xend-pci-passthru-fix.patch
+Patch41: 22235-lxml-validator.patch
+Patch42: 22280-kexec.patch
+Patch43: 22337-vtd-scan-single-func.patch
+Patch44: 22348-vtd-check-secbus-devfn.patch
+Patch45: 22369-xend-pci-passthru-fix.patch
+Patch46: 22389-amd-iommu-decls.patch
+Patch47: 22416-acpi-check-mwait.patch
+Patch48: 22417-vpmu-nehalem.patch
+Patch49: 22431-p2m-remove-bug-check.patch
# Our patches
Patch300: xen-config.diff
Patch301: xend-config.diff
@@ -250,18 +256,19 @@
Patch450: xend-domain-lock.patch
# Hypervisor and PV driver Patches
Patch500: 32on64-extra-mem.patch
-Patch501: x86-ioapic-ack-default.patch
-Patch502: x86-cpufreq-report.patch
-Patch503: dump-exec-state.patch
-Patch504: dom-print.patch
-Patch505: pvdrv-import-shared-info.patch
-Patch506: x86-show-page-walk-early.patch
-Patch507: x86-extra-trap-info.patch
-Patch508: pvdrv_emulation_control.patch
-Patch509: blktap-pv-cdrom.patch
-Patch510: pv-driver-build.patch
-Patch511: supported_module.diff
-Patch512: magic_ioport_compat.patch
+Patch501: x86_64-gdt-ldt-fault-filter.patch
+Patch502: x86-ioapic-ack-default.patch
+Patch503: x86-cpufreq-report.patch
+Patch504: dump-exec-state.patch
+Patch505: dom-print.patch
+Patch506: pvdrv-import-shared-info.patch
+Patch507: x86-show-page-walk-early.patch
+Patch508: x86-extra-trap-info.patch
+Patch509: pvdrv_emulation_control.patch
+Patch510: blktap-pv-cdrom.patch
+Patch511: pv-driver-build.patch
+Patch512: supported_module.diff
+Patch513: magic_ioport_compat.patch
Patch650: disable_emulated_device.diff
Patch651: ioemu-disable-scsi.patch
# novell_shim patches
@@ -416,7 +423,7 @@
Summary: Xen Virtualization: Control tools for domain 0
Group: System/Kernel
Requires: xen-libs = %{version}
-Requires: bridge-utils multipath-tools python python-curses python-openssl python-pam python-xml pyxml
+Requires: bridge-utils multipath-tools python python-curses python-openssl python-pam python-xml python-lxml
#Requires: ipcalc
# subpackage existed in 10.3
Provides: xen-tools-ioemu = 3.2
@@ -631,6 +638,7 @@
%prep
%setup -q -n %xen_build_dir -a 1
+tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
%patch0 -p1
%patch1 -p1
%patch2 -p1
@@ -676,6 +684,11 @@
%patch42 -p1
%patch43 -p1
%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
%patch300 -p1
%patch301 -p1
%patch302 -p1
@@ -780,6 +793,7 @@
%patch510 -p1
%patch511 -p1
%patch512 -p1
+%patch513 -p1
%patch650 -p1
%patch651 -p1
%patch700 -p1
@@ -845,6 +859,7 @@
cd ../..
done
%endif
+make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes
%install
test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
@@ -899,7 +914,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.conf
+install -m644 %SOURCE20 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers.conf
%endif
# stubdom
make stubdom
@@ -916,7 +931,7 @@
make -C docs install \
DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} \
DOCDIR=%{_defaultdocdir}/xen
-for name in COPYING %SOURCE2 %SOURCE3 %SOURCE4; do
+for name in COPYING %SOURCE3 %SOURCE4 %SOURCE5; do
install -m 644 $name $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/
done
mkdir -p $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/misc
@@ -925,21 +940,21 @@
done
# init scripts
mkdir -p $RPM_BUILD_ROOT/etc/init.d
-install %SOURCE5 $RPM_BUILD_ROOT/etc/init.d/xend
+install %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xend
ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend
-install %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xendomains
+install %SOURCE7 $RPM_BUILD_ROOT/etc/init.d/xendomains
ln -s /etc/init.d/xendomains $RPM_BUILD_ROOT/usr/sbin/rcxendomains
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
-install -m644 %SOURCE18 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf
+install -m644 %SOURCE19 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf
# example config
mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts}
mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples
rm -f $RPM_BUILD_ROOT/etc/xen/examples/*nbd
-install -m644 %SOURCE9 %SOURCE10 $RPM_BUILD_ROOT/etc/xen/examples/
+install -m644 %SOURCE10 %SOURCE11 $RPM_BUILD_ROOT/etc/xen/examples/
install -m644 tools/xentrace/formats $RPM_BUILD_ROOT/etc/xen/examples/xentrace_formats.txt
# scripts
rm -f $RPM_BUILD_ROOT/etc/xen/scripts/block-*nbd
-install -m755 %SOURCE11 %SOURCE12 %SOURCE13 %SOURCE14 %SOURCE15 %SOURCE16 %SOURCE17 %SOURCE21 $RPM_BUILD_ROOT/etc/xen/scripts/
+install -m755 %SOURCE12 %SOURCE13 %SOURCE14 %SOURCE15 %SOURCE16 %SOURCE17 %SOURCE18 %SOURCE22 $RPM_BUILD_ROOT/etc/xen/scripts/
ln -s /etc/xen/scripts/vm-monitor $RPM_BUILD_ROOT/etc/xen/scripts/set-lock
# Xen API remote authentication files
install -d $RPM_BUILD_ROOT/etc/pam.d
@@ -953,7 +968,7 @@
ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-up.d/xen
ln -s /etc/sysconfig/network/scripts/xen-updown.sh $RPM_BUILD_ROOT/etc/sysconfig/network/if-down.d/xen
# logrotate
-install -m644 -D %SOURCE7 $RPM_BUILD_ROOT/etc/logrotate.d/xen
+install -m644 -D %SOURCE8 $RPM_BUILD_ROOT/etc/logrotate.d/xen
# directories
mkdir -p $RPM_BUILD_ROOT/var/lib/xenstored
mkdir -p $RPM_BUILD_ROOT/var/lib/xen/images
@@ -967,12 +982,14 @@
mkdir -p $RPM_BUILD_ROOT/var/log/xen
ln -s /var/lib/xen/images $RPM_BUILD_ROOT/etc/xen/images
# Bootloader
-install -m755 %SOURCE8 $RPM_BUILD_ROOT/usr/lib/xen/boot/
+install -m755 %SOURCE9 $RPM_BUILD_ROOT/usr/lib/xen/boot/
# udev support
mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d
mv $RPM_BUILD_ROOT/etc/udev/rules.d/xen-backend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xen.rules
mv $RPM_BUILD_ROOT/etc/udev/rules.d/xend.rules $RPM_BUILD_ROOT/etc/udev/rules.d/40-xend.rules
#%find_lang xen-vm # po files are misnamed upstream
+# xen utils
+make -C tools/xen-utils-0.1 install DESTDIR=$RPM_BUILD_ROOT XEN_INTREE_BUILD=yes
# Clean up unpackaged files
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xen/qemu/
rm -f $RPM_BUILD_ROOT/%{_datadir}/doc/qemu/qemu-*
@@ -1055,6 +1072,7 @@
/usr/sbin/td-util
/usr/sbin/vhd-update
/usr/sbin/vhd-util
+/usr/sbin/xen-list
/usr/sbin/gdbsx
/usr/sbin/xl
%dir %{_libdir}/xen
++++++ 22235-lxml-validator.patch ++++++
# HG changeset patch
# User Stephan Peijnik
# Date 1286816093 -3600
# Node ID b8cc53d22545706b28c7a26dffd24f192a76541a
# Parent fbce8e403470db8c9e580a5efd9d717cd2260c1f
Replace pyxml/xmlproc-based XML validator with lxml based one
Pyxml/xmlproc is being used in tools/xen/xm/xenapi_create.py but is
unmaintained for several years now. xmlproc is used only for validating
XML documents against a DTD file.
This patch replaces the pyxml/xmlproc based XML validation with code
based on lxml, which is actively maintained.
Signed-off-by: Stephan Peijnik
Signed-off-by: Stefano Stabellini
committer: Stefano Stabellini
Index: xen-4.0.1-testing/README
===================================================================
--- xen-4.0.1-testing.orig/README
+++ xen-4.0.1-testing/README
@@ -137,12 +137,15 @@ Python Runtime Libraries
Xend (the Xen daemon) has the following runtime dependencies:
* Python 2.3 or later.
- In many distros, the XML-aspects to the standard library
+ In some distros, the XML-aspects to the standard library
(xml.dom.minidom etc) are broken out into a separate python-xml package.
This is also required.
+ In more recent versions of Debian and Ubuntu the XML-aspects are included
+ in the base python package however (python-xml has been removed
+ from Debian in squeeze and from Ubuntu in intrepid).
URL: http://www.python.org/
- Debian: python, python-xml
+ Debian: python
* For optional SSL support, pyOpenSSL:
URL: http://pyopenssl.sourceforge.net/
@@ -153,8 +156,9 @@ Xend (the Xen daemon) has the following
Debian: python-pam
* For optional XenAPI support in XM, PyXML:
- URL: http://pyxml.sourceforge.net
- YUM: PyXML
+ URL: http://codespeak.net/lxml/
+ Debian: python-lxml
+ YUM: python-lxml
Intel(R) Trusted Execution Technology Support
Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py
+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
@@ -14,13 +14,15 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#============================================================================
# Copyright (C) 2007 Tom Wilkie
+# Copyright (C) 2010 ANEXIA Internetdienstleistungs GmbH
+# Author: Stephan Peijnik
#============================================================================
"""Domain creation using new XenAPI
"""
from xen.xm.main import server, get_default_SR
from xml.dom.minidom import parse, getDOMImplementation
-from xml.parsers.xmlproc import xmlproc, xmlval, xmldtd
+from lxml import etree
from xen.xend import sxp
from xen.xend.XendAPIConstants import XEN_API_ON_NORMAL_EXIT, \
XEN_API_ON_CRASH_BEHAVIOUR
@@ -35,6 +37,7 @@ import os
from os.path import join
import traceback
import re
+import warnings # Used by lxml-based validator
def log(_, msg):
#print "> " + msg
@@ -118,12 +121,21 @@ class xenapi_create:
Use this if possible as it gives nice
error messages
"""
- dtd = xmldtd.load_dtd(self.dtd)
- parser = xmlproc.XMLProcessor()
- parser.set_application(xmlval.ValidatingApp(dtd, parser))
- parser.dtd = dtd
- parser.ent = dtd
- parser.parse_resource(file)
+ try:
+ dtd = etree.DTD(open(self.dtd, 'r'))
+ except IOError:
+ # The old code did neither raise an exception here, nor
+ # did it report an error. For now we issue a warning.
+ # TODO: How to handle a missing dtd file?
+ # --sp
+ warnings.warn('DTD file %s not found.' % (self.dtd),
+ UserWarning)
+ return
+
+ tree = etree.parse(file)
+ root = tree.getroot()
+ if not dtd.validate(root):
+ self.handle_dtd_errors(dtd)
def check_dom_against_dtd(self, dom):
"""
@@ -131,49 +143,36 @@ class xenapi_create:
Doesn't give as nice error messages.
(no location info)
"""
- dtd = xmldtd.load_dtd(self.dtd)
- app = xmlval.ValidatingApp(dtd, self)
- app.set_locator(self)
- self.dom2sax(dom, app)
-
- # Get errors back from ValidatingApp
- def report_error(self, number, args=None):
- self.errors = xmlproc.errors.english
try:
- msg = self.errors[number]
- if args != None:
- msg = msg % args
- except KeyError:
- msg = self.errors[4002] % number # Unknown err msg :-)
- print msg
+ dtd = etree.DTD(open(self.dtd, 'r'))
+ except IOError:
+ # The old code did neither raise an exception here, nor
+ # did it report an error. For now we issue a warning.
+ # TODO: How to handle a missing dtd file?
+ # --sp
+ warnings.warn('DTD file %s not found.' % (self.dtd),
+ UserWarning)
+ return
+
+ # XXX: This may be a bit slow. Maybe we should use another way
+ # of getting an etree root element from the minidom DOM tree...
+ # -- sp
+ root = etree.XML(dom.toxml())
+ if not dtd.validate(root):
+ self.handle_dtd_errors(dtd)
+
+ # Do the same that was done in report_error before. This is directly
+ # called by check_dtd and check_dom_against_dtd.
+ # We are using sys.stderr instead of print though (python3k clean).
+ def handle_dtd_errors(self, dtd):
+ # XXX: Do we really want to bail out here?
+ # -- sp
+ for err in dtd.error_log:
+ err_str = 'ERROR: %s\n' % (str(err),)
+ sys.stderr.write(err_str)
+ sys.stderr.flush()
sys.exit(-1)
- # Here for compatibility with ValidatingApp
- def get_line(self):
- return -1
-
- def get_column(self):
- return -1
-
- def dom2sax(self, dom, app):
- """
- Take a dom tree and tarverse it,
- issuing SAX calls to app.
- """
- for child in dom.childNodes:
- if child.nodeType == child.TEXT_NODE:
- data = child.nodeValue
- app.handle_data(data, 0, len(data))
- else:
- app.handle_start_tag(
- child.nodeName,
- self.attrs_to_dict(child.attributes))
- self.dom2sax(child, app)
- app.handle_end_tag(child.nodeName)
-
- def attrs_to_dict(self, attrs):
- return dict(attrs.items())
-
#
# Checks which cannot be done with dtd
#
++++++ 22389-amd-iommu-decls.patch ++++++
# HG changeset patch
# User Keir Fraser
# Date 1289906913 0
# Node ID 9b2ca938cfe6c0639471e24634bc4a48d889b412
# Parent 87f248de52304bc96a80dc093250fed0197f37e0
amd iommu: Fix HV crash with 32bit pv_ops kernel
Signed-off-by: Wei Wang
Tested-by: Conny Seidel
--- a/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h
+++ b/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h
@@ -32,9 +32,6 @@
#define DMA_32BIT_MASK 0x00000000ffffffffULL
#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK)
-extern int amd_iommu_debug;
-extern int amd_iommu_perdev_intremap;
-
#define AMD_IOMMU_DEBUG(fmt, args...) \
do \
{ \
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -30,6 +30,8 @@ extern bool_t iommu_enabled;
extern bool_t force_iommu, iommu_verbose;
extern bool_t iommu_workaround_bios_bug, iommu_passthrough;
extern bool_t iommu_snoop, iommu_qinval, iommu_intremap;
+extern bool_t amd_iommu_debug;
+extern bool_t amd_iommu_perdev_intremap;
#define domain_hvm_iommu(d) (&d->arch.hvm_domain.hvm_iommu)
++++++ 22416-acpi-check-mwait.patch ++++++
# HG changeset patch
# User Keir Fraser
# Date 1290453180 0
# Node ID 0cc4ed1ce1f34ce442ed4da106e555931c895395
# Parent 899131a8f9d2b99acc4bbe18593952d30446e71b
x86: Check for MWAIT in CPUID before using it in ACPI idle code.
Signed-off-by: Keir Fraser
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -717,7 +717,8 @@ static void set_cx(
{
case ACPI_ADR_SPACE_FIXED_HARDWARE:
if ( xen_cx->reg.bit_width == VENDOR_INTEL &&
- xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT )
+ xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT &&
+ boot_cpu_has(X86_FEATURE_MWAIT) )
cx->entry_method = ACPI_CSTATE_EM_FFH;
else
cx->entry_method = ACPI_CSTATE_EM_HALT;
++++++ 22417-vpmu-nehalem.patch ++++++
References: bnc#655438
# HG changeset patch
# User Keir Fraser
# Date 1290453394 0
# Node ID c0c1f5f0745e25af6f8b4a1006637d98a8d63581
# Parent 0cc4ed1ce1f34ce442ed4da106e555931c895395
x86 hvm: Fix VPMU issue on Nehalem cpus
Fix an issue on Nehalem cpus where performance counter overflows may
lead to endless interrupt loops on this cpu.
Signed-off-by: Dietmar Hahn
# HG changeset patch
# User Keir Fraser
# Date 1290173202 0
# Node ID b7ed352fa6100104374000cdbd845bbfc6478f08
# Parent 437576a0f2026ded6dcc4b11558714dad1d1d042
VPMU: Add the Intel CPU X7542 to the list of supported prcocessors
Signed-off-by: Dietmar Hahn
--- a/xen/arch/x86/hvm/vmx/vpmu.c
+++ b/xen/arch/x86/hvm/vmx/vpmu.c
@@ -96,6 +96,7 @@ void vpmu_initialise(struct vcpu *v)
case 23:
case 26:
case 29:
+ case 46:
vpmu->arch_vpmu_ops = &core2_vpmu_ops;
break;
}
--- a/xen/arch/x86/hvm/vmx/vpmu_core2.c
+++ b/xen/arch/x86/hvm/vmx/vpmu_core2.c
@@ -35,6 +35,68 @@
#include
#include
+/*
+ * QUIRK to workaround an issue on Nehalem processors currently seen
+ * on family 6 cpus E5520 (model 26) and X7542 (model 46).
+ * The issue leads to endless PMC interrupt loops on the processor.
+ * If the interrupt handler is running and a pmc reaches the value 0, this
+ * value remains forever and it triggers immediately a new interrupt after
+ * finishing the handler.
+ * A workaround is to read all flagged counters and if the value is 0 write
+ * 1 (or another value != 0) into it.
+ * There exist no errata and the real cause of this behaviour is unknown.
+ */
+bool_t __read_mostly is_pmc_quirk;
+
+static void check_pmc_quirk(void)
+{
+ u8 family = current_cpu_data.x86;
+ u8 cpu_model = current_cpu_data.x86_model;
+ is_pmc_quirk = 0;
+ if ( family == 6 )
+ {
+ if ( cpu_model == 46 || cpu_model == 26 )
+ is_pmc_quirk = 1;
+ }
+}
+
+static int core2_get_pmc_count(void);
+static void handle_pmc_quirk(u64 msr_content)
+{
+ int num_gen_pmc = core2_get_pmc_count();
+ int num_fix_pmc = 3;
+ int i;
+ u64 val;
+
+ if ( !is_pmc_quirk )
+ return;
+
+ val = msr_content;
+ for ( i = 0; i < num_gen_pmc; i++ )
+ {
+ if ( val & 0x1 )
+ {
+ u64 cnt;
+ rdmsrl(MSR_P6_PERFCTR0 + i, cnt);
+ if ( cnt == 0 )
+ wrmsrl(MSR_P6_PERFCTR0 + i, 1);
+ }
+ val >>= 1;
+ }
+ val = msr_content >> 32;
+ for ( i = 0; i < num_fix_pmc; i++ )
+ {
+ if ( val & 0x1 )
+ {
+ u64 cnt;
+ rdmsrl(MSR_CORE_PERF_FIXED_CTR0 + i, cnt);
+ if ( cnt == 0 )
+ wrmsrl(MSR_CORE_PERF_FIXED_CTR0 + i, 1);
+ }
+ val >>= 1;
+ }
+}
+
u32 core2_counters_msr[] = {
MSR_CORE_PERF_FIXED_CTR0,
MSR_CORE_PERF_FIXED_CTR1,
@@ -497,6 +559,10 @@ static int core2_vpmu_do_interrupt(struc
rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, msr_content);
if ( !msr_content )
return 0;
+
+ if ( is_pmc_quirk )
+ handle_pmc_quirk(msr_content);
+
core2_vpmu_cxt->global_ovf_status |= msr_content;
msr_content = 0xC000000700000000 | ((1 << core2_get_pmc_count()) - 1);
wrmsrl(MSR_CORE_PERF_GLOBAL_OVF_CTRL, msr_content);
@@ -518,6 +584,7 @@ static int core2_vpmu_do_interrupt(struc
static void core2_vpmu_initialise(struct vcpu *v)
{
+ check_pmc_quirk();
}
static void core2_vpmu_destroy(struct vcpu *v)
++++++ 22431-p2m-remove-bug-check.patch ++++++
# HG changeset patch
# User Tim Deegan
# Date 1290594003 0
# Node ID 79b71c77907b80772ee8cba0c5bbf8e444e61226
# Parent e5c4e925e1bd15baeadc0817dcceb5fff54b8a74
x86/mm: remove incorrect BUG_ON.
This BUG_ON tests a property of an effectively random PFN in the guest,
and is explicitly _not_ seeing the MFN that's known to be owned.
Signed-off-by: Tim Deegan
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2186,9 +2186,6 @@ guest_physmap_add_entry(struct domain *d
P2M_DEBUG("aliased! mfn=%#lx, old gfn=%#lx, new gfn=%#lx\n",
mfn + i, ogfn, gfn + i);
omfn = gfn_to_mfn_query(d, ogfn, &ot);
- /* If we get here, we know the local domain owns the page,
- so it can't have been grant mapped in. */
- BUG_ON( p2m_is_grant(ot) );
if ( p2m_is_ram(ot) )
{
ASSERT(mfn_valid(omfn));
++++++ cpu-pools-python.patch ++++++
--- /var/tmp/diff_new_pack.llC1ey/_old 2010-12-02 17:11:29.000000000 +0100
+++ /var/tmp/diff_new_pack.llC1ey/_new 2010-12-02 17:11:29.000000000 +0100
@@ -2511,7 +2511,7 @@
===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py
+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
-@@ -310,6 +310,8 @@ class xenapi_create:
+@@ -309,6 +309,8 @@ class xenapi_create:
get_child_nodes_as_dict(vm, "platform", "key", "value"),
"other_config":
get_child_nodes_as_dict(vm, "other_config", "key", "value"),
@@ -2520,7 +2520,7 @@
"PV_bootloader":
"",
"PV_kernel":
-@@ -696,6 +698,8 @@ class sxp2xml:
+@@ -695,6 +697,8 @@ class sxp2xml:
= str(get_child_by_name(config, "s3_integrity", 0))
vm.attributes["superpages"] \
= str(get_child_by_name(config, "superpages", 0))
++++++ x86_64-gdt-ldt-fault-filter.patch ++++++
References: bnc#656245
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1223,7 +1223,7 @@ static int fixup_page_fault(unsigned lon
if ( unlikely(IN_HYPERVISOR_RANGE(addr)) )
{
- if ( !(regs->error_code & PFEC_reserved_bit) &&
+ if ( !(regs->error_code & (PFEC_user_mode | PFEC_reserved_bit)) &&
(addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) )
return handle_gdt_ldt_mapping_fault(
addr - GDT_LDT_VIRT_START, regs);
++++++ xen-warnings.diff ++++++
--- /var/tmp/diff_new_pack.llC1ey/_old 2010-12-02 17:11:29.000000000 +0100
+++ /var/tmp/diff_new_pack.llC1ey/_new 2010-12-02 17:11:29.000000000 +0100
@@ -174,3 +174,27 @@
RPRINTF("opening %s\n", name);
+Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h
+===================================================================
+--- xen-4.0.1-testing.orig/tools/blktap/lib/blktaplib.h
++++ xen-4.0.1-testing/tools/blktap/lib/blktaplib.h
+@@ -196,6 +196,7 @@ typedef struct msg_pid {
+ } msg_pid_t;
+
+ #define READ 0
++#undef WRITE
+ #define WRITE 1
+
+ /*Control Messages between manager and tapdev*/
+Index: xen-4.0.1-testing/tools/blktap2/include/blktaplib.h
+===================================================================
+--- xen-4.0.1-testing.orig/tools/blktap2/include/blktaplib.h
++++ xen-4.0.1-testing/tools/blktap2/include/blktaplib.h
+@@ -198,6 +198,7 @@ typedef struct msg_lock {
+ } msg_lock_t;
+
+ #define READ 0
++#undef WRITE
+ #define WRITE 1
+
+ /*Control Messages between manager and tapdev*/
++++++ xenpaging.autostart.patch ++++++
--- /var/tmp/diff_new_pack.llC1ey/_old 2010-12-02 17:11:29.000000000 +0100
+++ /var/tmp/diff_new_pack.llC1ey/_new 2010-12-02 17:11:29.000000000 +0100
@@ -23,6 +23,8 @@
tools/python/xen/xm/xenapi_create.py | 1
8 files changed, 111 insertions(+)
+Index: xen-4.0.1-testing/tools/examples/xmexample.hvm
+===================================================================
--- xen-4.0.1-testing.orig/tools/examples/xmexample.hvm
+++ xen-4.0.1-testing/tools/examples/xmexample.hvm
@@ -127,6 +127,9 @@ disk = [ 'file:/var/lib/xen/images/disk.
@@ -35,6 +37,8 @@
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
+Index: xen-4.0.1-testing/tools/python/README.XendConfig
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/README.XendConfig
+++ xen-4.0.1-testing/tools/python/README.XendConfig
@@ -120,6 +120,7 @@ otherConfig
@@ -45,6 +49,8 @@
image.hvm.display
image.hvm.xauthority
image.hvm.vncconsole
+Index: xen-4.0.1-testing/tools/python/README.sxpcfg
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/README.sxpcfg
+++ xen-4.0.1-testing/tools/python/README.sxpcfg
@@ -51,6 +51,7 @@ image
@@ -55,6 +61,8 @@
- display
- xauthority
- vncconsole
+Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py
@@ -145,6 +145,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
@@ -74,6 +82,8 @@
if 'timer_mode' not in self['platform']:
self['platform']['timer_mode'] = 1
if 'viridian' not in self['platform']:
+Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2442,6 +2442,7 @@ class XendDomainInfo:
@@ -96,6 +106,8 @@
else:
log.debug("No device model")
+Index: xen-4.0.1-testing/tools/python/xen/xend/image.py
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.0.1-testing/tools/python/xen/xend/image.py
@@ -122,12 +122,14 @@ class ImageHandler:
@@ -209,6 +221,8 @@
def createDeviceModel(self, restore = False):
if self.device_model is None:
return
+Index: xen-4.0.1-testing/tools/python/xen/xm/create.py
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py
+++ xen-4.0.1-testing/tools/python/xen/xm/create.py
@@ -495,6 +495,10 @@ gopts.var('nfs_root', val="PATH",
@@ -230,9 +244,11 @@
'device_model', 'display',
'fda', 'fdb',
'gfx_passthru', 'guest_os_type',
+Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
+===================================================================
--- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py
+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
-@@ -1086,6 +1086,7 @@ class sxp2xml:
+@@ -1085,6 +1085,7 @@ class sxp2xml:
'acpi',
'apic',
'boot',
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org