[xen] create symlink for qemu-dm on x86_64 for compatibility with 3.4, add some irq fixes and disable xsav

myoung myoung at fedoraproject.org
Fri Sep 24 20:28:30 UTC 2010


commit 883e72bb6486c8a7056270b9f80677e859de595d
Author: Michael Young <m.a.young at durham.ac.uk>
Date:   Fri Sep 24 21:25:03 2010 +0100

    create symlink for qemu-dm on x86_64 for compatibility with 3.4,
    add some irq fixes and disable xsave which causes problems for HVM

 xen.irq.fixes.patch     |   63 +++++++++++++++++++++++++++++++++++++++++++++++
 xen.spec                |   18 ++++++++++++-
 xen.xsave.disable.patch |   26 +++++++++++++++++++
 3 files changed, 106 insertions(+), 1 deletions(-)
---
diff --git a/xen.irq.fixes.patch b/xen.irq.fixes.patch
new file mode 100644
index 0000000..b5e35b2
--- /dev/null
+++ b/xen.irq.fixes.patch
@@ -0,0 +1,63 @@
+
+# HG changeset patch
+# User Keir Fraser <keir.fraser at citrix.com>
+# Date 1283154997 -3600
+# Node ID ab1fb1b8b569ef78ac352a5ff4524d0fae80945a
+# Parent 9ff9b57ddddfd3693698ece28ae44542fba6ee0f
+Fix bind_irq_vector() destination
+
+The "mask" covered all online cpus in the "domain". It should be used
+as destination later, instead of using "domain" directly.
+
+Signed-off-by: Sheng Yang <sheng at linux.intel.com>
+xen-unstable: changeset:   3eb5127e4636
+xen-unstable: date:        Thu Aug 26 11:16:14 2010 +0100
+
+--- a/xen/arch/x86/irq.c	Mon Aug 30 08:56:07 2010 +0100
++++ b/xen/arch/x86/irq.c	Mon Aug 30 08:56:37 2010 +0100
+@@ -90,14 +90,14 @@ static int __bind_irq_vector(int irq, in
+     cpus_and(mask, domain, cpu_online_map);
+     if (cpus_empty(mask))
+         return -EINVAL;
+-    if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain))
++    if ((cfg->vector == vector) && cpus_equal(cfg->domain, mask))
+         return 0;
+     if (cfg->vector != IRQ_VECTOR_UNASSIGNED) 
+         return -EBUSY;
+     for_each_cpu_mask(cpu, mask)
+         per_cpu(vector_irq, cpu)[vector] = irq;
+     cfg->vector = vector;
+-    cfg->domain = domain;
++    cfg->domain = mask;
+     irq_status[irq] = IRQ_USED;
+     if (IO_APIC_IRQ(irq))
+         irq_vector[irq] = vector;
+
+
+# HG changeset patch
+# User Keir Fraser <keir.fraser at citrix.com>
+# Date 1284396688 -3600
+# Node ID 965d47d5d7c2e3d97ea1c70c9261ae76e2abf6ac
+# Parent 208129cefcb30ae476af9a934008addf04e77cdc
+Fix serial interrupt's destination
+
+Lowest Priority can't use with invalid cpu_mask, and the default value
+of CPU_MASK_ALL may cover CPU which wasn't online.
+
+From: "Yang, Sheng" <sheng.yang at intel.com>
+Signed-off-by: Keir Fraser <keir.fraser at citrix.com>
+xen-unstable changeset:   22148:a254d1236c1a
+xen-unstable date:        Mon Sep 13 17:37:25 2010 +0100
+
+--- a/xen/arch/x86/smpboot.c	Mon Sep 13 17:50:14 2010 +0100
++++ b/xen/arch/x86/smpboot.c	Mon Sep 13 17:51:28 2010 +0100
+@@ -1602,7 +1602,7 @@ void __init smp_intr_init(void)
+ 		irq_vector[irq] = FIRST_HIPRIORITY_VECTOR + seridx + 1;
+ 		per_cpu(vector_irq, cpu)[FIRST_HIPRIORITY_VECTOR + seridx + 1] = irq;
+ 		irq_cfg[irq].vector = FIRST_HIPRIORITY_VECTOR + seridx + 1;
+-		irq_cfg[irq].domain = (cpumask_t)CPU_MASK_ALL;
++		irq_cfg[irq].domain = cpu_online_map;
+ 	}
+ 
+ 	/* IPI for cleanuping vectors after irq move */
+
diff --git a/xen.spec b/xen.spec
index ece061b..9dad22b 100644
--- a/xen.spec
+++ b/xen.spec
@@ -6,7 +6,7 @@
 Summary: Xen is a virtual machine monitor
 Name:    xen
 Version: 4.0.1
-Release: 2%{?dist}
+Release: 3%{?dist}
 Group:   Development/Libraries
 License: GPLv2+ and LGPLv2+ and BSD
 URL:     http://xen.org/
@@ -40,6 +40,8 @@ Patch10: xen-no-werror.patch
 Patch18: localgcc45fix.patch
 Patch19: localpy27fixes.patch
 Patch20: localgcc451fix.patch
+Patch21: xen.irq.fixes.patch
+Patch22: xen.xsave.disable.patch
 
 Patch100: xen-configure-xend.patch
 
@@ -164,6 +166,8 @@ to build the xen packages.
 %patch18 -p1
 %patch19 -p1
 %patch20 -p1
+%patch21 -p1
+%patch22 -p1
 
 %patch100 -p1
 
@@ -274,6 +278,12 @@ mkdir -p %{buildroot}%{_localstatedir}/log/xen/console
 mkdir -p %{buildroot}%{_sysconfdir}/yum.repos.d
 cp %{SOURCE3} %{buildroot}%{_sysconfdir}/yum.repos.d
 
+############ create symlink for x86_64 for compatibility with 3.4 ############
+
+%if "%{_libdir}" != "/usr/lib"
+ln -s /usr/lib/%{name}/bin/qemu-dm %{buildroot}/%{_libdir}/%{name}/bin/qemu-dm
+%endif
+
 ############ debug packaging: list files ############
 
 find %{buildroot} -print | xargs ls -ld | sed -e 's|.*%{buildroot}||' > f2.list
@@ -512,6 +522,12 @@ rm -rf %{buildroot}
 %doc licensedir/*
 
 %changelog
+* Fri Sep 24 2010 Michael Young <m.a.young at durham.ac.uk> - 4.0.1-3
+- create symlink for qemu-dm on x86_64 for compatibility with 3.4
+- apply some patches destined for 4.0.2
+    add some irq fixes
+    disable xsave which causes problems for HVM
+
 * Sun Aug 29 2010 Michael Young <m.a.young at durham.ac.uk> - 4.0.1-2
 - fix compile problems on Fedora 15, I suspect due to gcc 4.5.1
 
diff --git a/xen.xsave.disable.patch b/xen.xsave.disable.patch
new file mode 100644
index 0000000..aa862d8
--- /dev/null
+++ b/xen.xsave.disable.patch
@@ -0,0 +1,26 @@
+
+# HG changeset patch
+# User Keir Fraser <keir.fraser at citrix.com>
+# Date 1283332925 -3600
+# Node ID 16867267ac126043712703455b81c16f2549ee23
+# Parent e854f11d392d13e5302a219bcc9e6e352a4f1c1b
+x86 intel: Disable XSAVE support.
+
+It breaks HVM save/restore.
+
+Signed-off-by: Keir Fraser <keir.fraser at citrix.com>
+xen-unstable changeset:   ae0cd4e5cc01
+xen-unstable date:        Wed Sep 01 10:19:14 2010 +0100
+
+--- a/xen/arch/x86/cpu/intel.c	Wed Sep 01 10:21:41 2010 +0100
++++ b/xen/arch/x86/cpu/intel.c	Wed Sep 01 10:22:05 2010 +0100
+@@ -30,7 +30,7 @@ integer_param("cpuid_mask_ecx", opt_cpui
+ integer_param("cpuid_mask_ecx", opt_cpuid_mask_ecx);
+ integer_param("cpuid_mask_edx", opt_cpuid_mask_edx);
+ 
+-static int use_xsave = 1;
++static int use_xsave;
+ boolean_param("xsave", use_xsave);
+ 
+ #ifdef CONFIG_X86_INTEL_USERCOPY
+


More information about the scm-commits mailing list