[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [bisected] 2.6.31 regression: fails to boot as xen guest
On Tue, 2009-08-25 at 21:58 +0300, Pekka Enberg wrote: > On Tue, 2009-08-25 at 20:22 +0200, Arnd Hannemann wrote: > > Pekka Enberg wrote: > > > On Tue, 2009-08-25 at 19:49 +0200, Arnd Hannemann wrote: > > >> Hi Pekka, > > >> > > >> Pekka Enberg wrote: > > >>> On Tue, 2009-08-25 at 18:49 +0200, Arnd Hannemann wrote: > > >>>>> Thanks for doing the bisect! Can we also see your .config > > >>>>> also? > > >>>> Config for -rc7 is attached. My bisect configs were based on > > >>>> that > > >>> Thanks! While we wait for the Xen people, you can try the > > >>> following patch to see if we can narrow the bug down to > > >>> trap_init(). > > >> Yes seems to be trap_init(). -rc7 with this patch applied boots up > > >> to the prompt. > > > > > > Thanks for testing! Ingo, what do you think of the following patch? > > > AFAICT, x86-32 is the only architecture playing with traps in > > > mem_init() so this should be the safest fix for 2.6.31. > > > > Hmm, -rc7 + this fix does not work for me :-/ > > Still hangs before any output... > > Arnd, does this work for you? Here's a version of the patch that actually compiles. :-) Pekka diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 13ffa5d..b6ff185 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -50,6 +50,7 @@ config X86 select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_LZMA select HAVE_ARCH_KMEMCHECK + select HAVE_ARCH_MEM_INIT_LATE if X86_32 config OUTPUT_FORMAT string @@ -86,6 +87,10 @@ config STACKTRACE_SUPPORT config HAVE_LATENCYTOP_SUPPORT def_bool y +config HAVE_ARCH_MEM_INIT_LATE + def_bool y + depends on X86_32 + config FAST_CMPXCHG_LOCAL bool default y diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 3cd7711..488ed4b 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -956,13 +956,17 @@ void __init mem_init(void) BUG_ON(VMALLOC_START >= VMALLOC_END); BUG_ON((unsigned long)high_memory > VMALLOC_START); - if (boot_cpu_data.wp_works_ok < 0) - test_wp_bit(); - save_pg_dir(); zap_low_mappings(true); } +void __init mem_init_late(void) +{ + /* Interrupts are enabled at this point. */ + if (boot_cpu_data.wp_works_ok < 0) + test_wp_bit(); +} + #ifdef CONFIG_MEMORY_HOTPLUG int arch_add_memory(int nid, u64 start, u64 size) { diff --git a/include/linux/mm.h b/include/linux/mm.h index 9a72cc7..eefcfbe 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1052,6 +1052,14 @@ extern void si_meminfo(struct sysinfo * val); extern void si_meminfo_node(struct sysinfo *val, int nid); extern int after_bootmem; +#ifdef CONFIG_HAVE_ARCH_MEM_INIT_LATE +extern void mem_init_late(void); +#else +static inline void mem_init_late(void) +{ +} +#endif + #ifdef CONFIG_NUMA extern void setup_per_cpu_pageset(void); #else diff --git a/init/main.c b/init/main.c index 2d9d6bd..45d8dbd 100644 --- a/init/main.c +++ b/init/main.c @@ -643,6 +643,7 @@ asmlinkage void __init start_kernel(void) set_gfp_allowed_mask(__GFP_BITS_MASK); kmem_cache_init_late(); + mem_init_late(); /* * HACK ALERT! This is early. We're enabling the console before _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |