[Oneiric] Temporary Xen HVM work-around
Stefan Bader
stefan.bader at canonical.com
Thu Sep 1 13:23:25 UTC 2011
I would like to propose the following SAUCE patch for Oneiric. Without
this the Oneiric kernel fails to boot in HVM mode from a Xen 4.1.1 or
newer hypervisor (which we ship in Oneiric).
It should be only temporary, but I am not sure we find a proper solution
within the time before final freeze and I rather would see the released
kernel at least booting.
Changes only affect code paths used when booting in HVM mode under Xen,
so there should be no other impact.
-Stefan
>From 6b33140cf331421e4dbac53b6eb155e4ac3be159 Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader at canonical.com>
Date: Thu, 1 Sep 2011 13:24:27 +0200
Subject: [PATCH] UBUNTU: SAUCE: xen: Do not use pv spinlocks on HVM
BugLink: http://bugs.launchpad.net/bugs/838026
This is broken at the moment and causes our 3.0 kernel to hang on
boot when started as a HVM guest of a 4.1.1 or newer hypervisor.
It should be reverted or dropped as soon as we find a proper solution.
Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
---
arch/x86/xen/enlighten.c | 2 ++
arch/x86/xen/smp.c | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 14dc31f..57727c5 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1360,8 +1360,10 @@ static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self,
switch (action) {
case CPU_UP_PREPARE:
per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu];
+ /* FIXME: Disable until a final solution is found (lp#838026)
if (xen_have_vector_callback)
xen_init_lock_cpu(cpu);
+ */
break;
default:
break;
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index e79dbb9..abd69a6 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -521,8 +521,10 @@ static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus)
native_smp_prepare_cpus(max_cpus);
WARN_ON(xen_smp_intr_init(0));
+ /* FIXME: Disable until final solution is found (lp#838026)
xen_init_lock_cpu(0);
xen_init_spinlocks();
+ */
}
static int __cpuinit xen_hvm_cpu_up(unsigned int cpu)
--
1.7.4.1
More information about the kernel-team
mailing list