[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Crash on boot with 2.6.37-rc8-git3



On Tue, 2011-01-25 at 12:03 +0000, Stefano Stabellini wrote:
> On Mon, 24 Jan 2011, M A Young wrote:
> > On Mon, 24 Jan 2011, Konrad Rzeszutek Wilk wrote:
> > 
> > > We can fix how the E820 is done.
> > > Look in arch/x86/xen/setup.c for 'xen_memory_setup' function.
> > > Try to wrap make map[i].size be = map[i].szie & ~(PAGE_SIZE-1)
> > > that should trim off the last 2048 bytes.
> > 
> > The attached patch works for me, though it does assume the memory region 
> > starts on a page boundary.
> 
> It turns out that it is me having the same issue you have and not the
> other way around :)
> 
> Your patch (in addition to my previous patch) makes my testbox boot, no
> matter what dom0_mem parameter I choose.
> 
> Appended is a version of the patch that doesn't assume that the memory
> region starts on a page boundary.
> 
> ---
> 
> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
> index b5a7f92..a3d28a1 100644
> --- a/arch/x86/xen/setup.c
> +++ b/arch/x86/xen/setup.c
> @@ -179,7 +179,10 @@ char * __init xen_memory_setup(void)
>       e820.nr_map = 0;
>       xen_extra_mem_start = mem_end;
>       for (i = 0; i < memmap.nr_entries; i++) {
> -             unsigned long long end = map[i].addr + map[i].size;
> +             unsigned long long end;
> +             if (map[i].type == E820_RAM)
> +                     map[i].size -= (map[i].size + map[i].addr) % PAGE_SIZE;

The more normal idiom to round down to a page boundary in the kernel is:
        map[i].size &= ~(PAGE_SIZE-1);

Do you also need to page align map[i].addr upwards for maximum safety?

Ian.

> +             end = map[i].addr + map[i].size;

>  
>               if (map[i].type == E820_RAM && end > mem_end) {
>                       /* RAM off the end - may be partially included */
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.