Re: 2.6.32-rc not booting with Xen-3.2 (bisected)

From: Jeremy Fitzhardinge
Date: Thu Oct 29 2009 - 11:36:48 EST


On 10/27/09 12:01, Christian Kujau wrote:
> On Tue, 27 Oct 2009 at 11:18, Jeremy Fitzhardinge wrote:
>
>> $ gdb vmlinux
>> (gdb) x/i 0xffffffff812c50ad
>>
> The value is always ffffffff812c50ad, gdb says:
>
> (gdb) x/i 0xffffffff812c50ad
> 0xffffffff812c50ad <xen_load_gdt_boot+252>: ud2a
>

Please try the patch below.

>> Hm, sounds like a xenstored bug, or something is just pounding on it.
>> Are there any other domains running, or other busy processes?
>>
> Yes, there's another domU running. But the high load and xenstored
> spinning is only happening when I try to start the domain with this
> 2.6.32-rc kernel.
>

That seems unlikely to be related (or a secondary effect of having a
domain crash).

J

Subject: [PATCH] xen: set up mmu_ops before trying to set any ptes

xen_setup_stackprotector() ends up trying to set page protections,
so we need to have vm_mmu_ops set up before trying to do so.
Failing to do so causes an early boot crash.

[ Impact: Fix early crash under Xen. ]

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 3439616..23a4d80 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1075,6 +1075,8 @@ asmlinkage void __init xen_start_kernel(void)
* Set up some pagetable state before starting to set any ptes.
*/

+ xen_init_mmu_ops();
+
/* Prevent unwanted bits from being set in PTEs. */
__supported_pte_mask &= ~_PAGE_GLOBAL;
if (!xen_initial_domain())
@@ -1099,7 +1101,6 @@ asmlinkage void __init xen_start_kernel(void)
*/
xen_setup_stackprotector();

- xen_init_mmu_ops();
xen_init_irq_ops();
xen_init_cpuid_mask();



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/