rpms/kernel/F-13 fix_xen_guest_on_old_EC2.patch, NONE, 1.1 kernel.spec, 1.2063, 1.2064

Justin M. Forbes jforbes at fedoraproject.org
Fri Jun 11 19:24:18 UTC 2010


Author: jforbes

Update of /cvs/pkgs/rpms/kernel/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv3192

Modified Files:
	kernel.spec 
Added Files:
	fix_xen_guest_on_old_EC2.patch 
Log Message:
Disable xsave for so that kernel will boot on ancient EC2 hosts.

fix_xen_guest_on_old_EC2.patch:
 enlighten.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE fix_xen_guest_on_old_EC2.patch ---

Legacy hypervisors (RHEL 5.0 and RHEL 5.1) do not handle guest writes to
cr4 gracefully. If a guest attempts to write a bit of cr4 that is
unsupported, then the HV is so offended it crashes the domain. While
later guest kernels (such as RHEL6) don't assume the HV supports all
features, they do expect nicer responses. That assumption introduced
code that probes whether or not xsave is supported early in the boot. So
now when attempting to boot a RHEL6 guest on RHEL5.0 or RHEL5.1 an early
crash will occur.

This patch is quite obviously an undesirable hack. The real fix for this
problem should be in the HV, and is, in later HVs. However, to support
running on old HVs, RHEL6 can take this small change. No impact will
occur for running on any RHEL HV (not even RHEL 5.5 supports xsave).
There is only potential for guest performance loss on upstream Xen.

---
 arch/x86/xen/enlighten.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 52f8e19..6db3d67 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -802,6 +802,7 @@ static void xen_write_cr4(unsigned long cr4)
 {
 	cr4 &= ~X86_CR4_PGE;
 	cr4 &= ~X86_CR4_PSE;
+	cr4 &= ~X86_CR4_OSXSAVE;
 
 	native_write_cr4(cr4);
 }
-- 
1.6.6.1


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-13/kernel.spec,v
retrieving revision 1.2063
retrieving revision 1.2064
diff -u -p -r1.2063 -r1.2064
--- kernel.spec	11 Jun 2010 14:27:45 -0000	1.2063
+++ kernel.spec	11 Jun 2010 19:24:18 -0000	1.2064
@@ -707,6 +707,10 @@ Patch1555: virt_console-fix-race.patch
 Patch1556: virt_console-fix-fix-race.patch
 Patch1557: virt_console-rollup2.patch
 Patch1558: vhost_net-rollup2.patch
+# EC2 is running old xen hosts and wont upgrade so we have to work around it
+Patch1559: fix_xen_guest_on_old_EC2.patch
+
+
 
 # fbdev x86-64 primary fix
 Patch1700: linux-2.6-x86-64-fbdev-primary.patch
@@ -1437,6 +1441,7 @@ ApplyPatch virt_console-fix-race.patch
 ApplyPatch virt_console-fix-fix-race.patch
 ApplyPatch virt_console-rollup2.patch
 ApplyPatch vhost_net-rollup2.patch
+ApplyPatch fix_xen_guest_on_old_EC2.patch
 
 # fix x86-64 fbdev primary GPU selection
 ApplyPatch linux-2.6-x86-64-fbdev-primary.patch
@@ -2201,6 +2206,9 @@ fi
 # and build.
 
 %changelog
+* Fri Jun 11 2010 Justin M. Forbes <jforbes at redhat.com> 2.6.33.5-127
+- Disable xsave for so that kernel will boot on ancient EC2 hosts.
+
 * Fri Jun 11 2010 Kyle McMartin <kyle at redhat.com> 2.6.33.5-126
 - ALSA: usbmixer - add possibility to remap dB values (rhbz#578131)
 



More information about the scm-commits mailing list