Re: [PATCH] reserve end-of-conventional-memory to 1MB on 32-bit v2

Ingo Molnar
2008-03-04T14:49:49Z

* Mark McLoughlin <markmc@redhat.com> wrote:

> > This is the second attempt at a i386-version of the ebda patch. I
> > hope that one of the Xen people will be able to check that this does
> > not break their setups, but I think it will be fine after their
> > patch to exclude the 0x9f000- 0x100000 area explicitly in their
> > setup.
>
> Confirmed that with Ian's e820 map patch and your patch, Xen DomU
> boots fine.

hm, for now i've only got the patch below queued up for v2.6.25.

Could you check whether just the patch below ontop of -rc3-ish upstream
solves the problem too? The EBDA patch would be a bit risky now - it's
queued up for v2.6.26 at the moment.

Ingo

--------------->
Subject: x86/xen: fix DomU boot problem
From: Ian Campbell <ijc@hellion.org.uk>
Date: Thu, 28 Feb 2008 23:16:49 +0000

Construct Xen guest e820 map with a hole between 640K-1M.

It's pure luck that Xen kernels have gotten away with it in the past.

The patch below seems like the right thing to do. It certainly boots in
a domU without the DMI problem (without any of the other related patches
such as Alexander's).

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Tested-by: Mark McLoughlin <markmc@redhat.com>
Acked-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/xen/setup.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-x86.q/arch/x86/xen/setup.c
===================================================================
--- linux-x86.q.orig/arch/x86/xen/setup.c
+++ linux-x86.q/arch/x86/xen/setup.c
@@ -38,7 +38,8 @@ char * __init xen_memory_setup(void)
unsigned long max_pfn = xen_start_info->nr_pages;

e820.nr_map = 0;
- add_memory_region(0, PFN_PHYS(max_pfn), E820_RAM);
+ add_memory_region(0, LOWMEMSIZE(), E820_RAM);
+ add_memory_region(HIGH_MEMORY, PFN_PHYS(max_pfn)-HIGH_MEMORY, E820_RAM);

return "Xen";
}