- 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

- bnc#656245 - VUL-1: hypervisor: application or kernel in any pv
  Xen domain can crash Xen
  x86_64-gdt-ldt-fault-filter.patch

- bnc#654050 - Python: a crasher bug in pyexpat - upstream patch 
  needs backporting 
  22235-lxml-validator.patch

- 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

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=86
This commit is contained in:
Charles Arnold 2010-11-30 23:19:04 +00:00 committed by Git OBS Bridge
parent f84f24ac38
commit 7e759c69d7
12 changed files with 593 additions and 99 deletions

186
22235-lxml-validator.patch Normal file
View File

@ -0,0 +1,186 @@
# HG changeset patch
# User Stephan Peijnik <spe@anexia.at>
# 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 <spe@anexia.at>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
committer: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
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 <tom.wilkie@gmail.com>
+# Copyright (C) 2010 ANEXIA Internetdienstleistungs GmbH
+# Author: Stephan Peijnik <spe@anexia.at>
#============================================================================
"""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
#

View File

@ -0,0 +1,33 @@
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# Date 1289906913 0
# Node ID 9b2ca938cfe6c0639471e24634bc4a48d889b412
# Parent 87f248de52304bc96a80dc093250fed0197f37e0
amd iommu: Fix HV crash with 32bit pv_ops kernel
Signed-off-by: Wei Wang <wei.wang2@amd.com>
Tested-by: Conny Seidel <conny.seidel@amd.com>
--- 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)

View File

@ -0,0 +1,21 @@
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# 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 <keir@xen.org>
--- 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;

123
22417-vpmu-nehalem.patch Normal file
View File

@ -0,0 +1,123 @@
References: bnc#655438
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# 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 <dietmar.hahn@ts.fujitsu.com>
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# 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 <dietmar.hahn@ts.fujitsu.com>
--- 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 <asm/hvm/vmx/vpmu.h>
#include <asm/hvm/vmx/vpmu_core2.h>
+/*
+ * 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)

View File

@ -0,0 +1,23 @@
# HG changeset patch
# User Tim Deegan <Tim.Deegan@citrix.com>
# 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 <Tim.Deegan@citrix.com>
--- 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));

View File

@ -2511,7 +2511,7 @@ 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
@@ -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 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py
"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))

View File

@ -0,0 +1,13 @@
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);

3
xen-utils-0.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef15c1d850149d7b1038e2e1e46e4f18ed2127700a38d6f28fa6fdaa95224563
size 6267

View File

@ -174,3 +174,27 @@ Index: xen-4.0.1-testing/tools/blktap2/drivers/block-remus.c
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*/

View File

@ -1,3 +1,36 @@
-------------------------------------------------------------------
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
-------------------------------------------------------------------
Fri Nov 19 11:48:43 CST 2010 - lidongyang@novell.com

211
xen.spec
View File

@ -25,35 +25,35 @@ ExclusiveArch: %ix86 x86_64
%define changeset 21326
%define xen_build_dir xen-4.0.1-testing
%define with_kmp 1
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
BuildRequires: automake
BuildRequires: bin86
BuildRequires: curl-devel
BuildRequires: dev86
BuildRequires: graphviz
BuildRequires: latex2html
BuildRequires: libjpeg-devel
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: openssl
BuildRequires: openssl-devel
BuildRequires: pciutils-devel
BuildRequires: python-devel
BuildRequires: texinfo
BuildRequires: transfig
BuildRequires: LibVNCServer-devel
BuildRequires: SDL-devel
BuildRequires: automake
BuildRequires: bin86
BuildRequires: curl-devel
BuildRequires: dev86
BuildRequires: graphviz
BuildRequires: latex2html
BuildRequires: libjpeg-devel
BuildRequires: libxml2-devel
BuildRequires: ncurses-devel
BuildRequires: openssl
BuildRequires: openssl-devel
BuildRequires: pciutils-devel
BuildRequires: python-devel
BuildRequires: texinfo
BuildRequires: transfig
%if %suse_version <= 1110
BuildRequires: pmtools
BuildRequires: pmtools
%else
BuildRequires: acpica
BuildRequires: acpica
%endif
%if %suse_version >= 1030
BuildRequires: texlive
BuildRequires: texlive-latex
BuildRequires: texlive
BuildRequires: texlive-latex
%else
BuildRequires: te_ams
BuildRequires: te_latex
BuildRequires: tetex
BuildRequires: te_ams
BuildRequires: te_latex
BuildRequires: tetex
%endif
%ifarch x86_64
BuildRequires: glibc-32bit glibc-devel-32bit
@ -78,28 +78,29 @@ PreReq: %insserv_prereq %fillup_prereq
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 @@ Patch37: 22222-x86-timer-extint.patch
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 @@ Patch440: bdrv_default_rwflag.patch
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
@ -273,32 +280,32 @@ Patch704: hv_apic.patch
# Build patch
Patch999: tmp_build.patch
# FATE 310510
Patch10001: xenpaging.tools_xenpaging_cleanup.patch
Patch10002: xenpaging.pageout_policy.patch
Patch10003: xenpaging.xs_daemon_close.patch
Patch10004: xenpaging.get_paged_frame.patch
Patch10005: xenpaging.makefile.patch
Patch10010: xenpaging.policy_linear.patch
Patch10011: xenpaging.pagefile.patch
Patch10012: xenpaging.xenpaging_init.patch
Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch
Patch10014: xenpaging.machine_to_phys_mapping.patch
Patch10015: xenpaging.populate_only_if_paged.patch
Patch10017: xenpaging.autostart.patch
Patch10018: xenpaging.signal_handling.patch
Patch10019: xenpaging.MRU_SIZE.patch
Patch10020: xenpaging.guest_remove_page.patch
Patch10021: xenpaging.mem_event_check_ring-free_requests.patch
Patch10022: xenpaging.blacklist.patch
Patch10023: xenpaging.autostart_delay.patch
Patch10024: xenpaging.page_already_populated.patch
Patch10025: xenpaging.notify_policy_only_once.patch
Patch10026: xenpaging.num_pages_equal_max_pages.patch
Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch
Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch
Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch
Patch10030: xenpaging.enabled.patch
Patch10040: xenpaging.doc.patch
Patch10001: xenpaging.tools_xenpaging_cleanup.patch
Patch10002: xenpaging.pageout_policy.patch
Patch10003: xenpaging.xs_daemon_close.patch
Patch10004: xenpaging.get_paged_frame.patch
Patch10005: xenpaging.makefile.patch
Patch10010: xenpaging.policy_linear.patch
Patch10011: xenpaging.pagefile.patch
Patch10012: xenpaging.xenpaging_init.patch
Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch
Patch10014: xenpaging.machine_to_phys_mapping.patch
Patch10015: xenpaging.populate_only_if_paged.patch
Patch10017: xenpaging.autostart.patch
Patch10018: xenpaging.signal_handling.patch
Patch10019: xenpaging.MRU_SIZE.patch
Patch10020: xenpaging.guest_remove_page.patch
Patch10021: xenpaging.mem_event_check_ring-free_requests.patch
Patch10022: xenpaging.blacklist.patch
Patch10023: xenpaging.autostart_delay.patch
Patch10024: xenpaging.page_already_populated.patch
Patch10025: xenpaging.notify_policy_only_once.patch
Patch10026: xenpaging.num_pages_equal_max_pages.patch
Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch
Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch
Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch
Patch10030: xenpaging.enabled.patch
Patch10040: xenpaging.doc.patch
Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#%define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()")
@ -416,7 +423,7 @@ License: GPLv2+
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 @@ Authors:
%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 @@ Authors:
%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 @@ Authors:
%patch510 -p1
%patch511 -p1
%patch512 -p1
%patch513 -p1
%patch650 -p1
%patch651 -p1
%patch700 -p1
@ -815,6 +829,7 @@ Authors:
%patch10030 -p1
%patch10040 -p1
%build
XEN_EXTRAVERSION=%version-%release
XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}}
@ -845,6 +860,7 @@ for flavor in %flavors_to_build; do
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 +915,7 @@ for flavor in %flavors_to_build; do
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 +932,7 @@ ln -s /usr/lib/xen/bin/stubdompath.sh $RPM_BUILD_ROOT/usr/lib64/xen/bin/stubdomp
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 +941,21 @@ for name in vtpm.txt crashdb.txt sedf_scheduler_mini-HOWTO.txt xenpaging.txt; do
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 +969,7 @@ install -m755 %SOURCE25 $RPM_BUILD_ROOT/etc/sysconfig/network/scripts
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 +983,14 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/xen/xenpaging
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 +1073,7 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/debug
/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

View File

@ -23,6 +23,8 @@ v2:
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 @@ v2:
#-----------------------------------------------------------------------------
# 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 @@ v2:
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 @@ v2:
- 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 @@ v2:
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 @@ v2:
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 @@ v2:
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 @@ v2:
'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',