lkml.org 
[lkml]   [2008]   [Feb]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] reserve end-of-conventional-memory to 1MB on 32-bit
    From
    Date
    On Fri, 2008-02-29 at 19:38 +0100, Alexander van Heukelum wrote:
    > On Fri, 29 Feb 2008 17:14:07 +0000, "Mark McLoughlin"
    > <markmc@redhat.com> said:
    >
    > > I haven't investigated in any detail, but with 2.6.25-rc3 and your
    > > patch I'm seeing a Xen guest hit this BUG:
    > >
    > > void __init smp_alloc_memory(void)
    > > {
    > > trampoline_base = alloc_bootmem_low_pages(PAGE_SIZE);
    > > /*
    > > * Has to be in very low memory so we can execute
    > > * real-mode AP code.
    > > */
    > > if (__pa(trampoline_base) >= 0x9F000)
    > > BUG();
    > > }
    > >
    > > Stack looks like:
    > >
    > > [<c137ef97>] smp_alloc_memory+0x25 <--
    > > [<c137ef97>] smp_alloc_memory+0x25
    > > [<c137a500>] setup_arch+0x28e
    > > [<c13735f7>] start_kernel+0x7a
    > > [<c1379240>] xen_start_kernel+0x300
    >
    > Ouch.
    >
    > My first guess is that the BIOS data area is completely non-existent for
    > Xen.
    > Is it guaranteed that the memory is zeroed out on boot?

    Yep, that seems to be the case

    > In that case we can special-case it easily:
    >
    > change:
    > /* Paranoia: should never happen, but... */
    > if (lowmem >= 0x100000)
    > lowmem = 0xa0000;
    >
    > into:
    > /* Strange case, like Xen ;) */
    > if (lowmem == 0 || lowmem >= 0x100000)
    > lowmem = 0x9f000;
    >
    > Can you test that?

    Yes, that fixes boot for me.

    Thanks,
    Mark.



    \
     
     \ /
      Last update: 2008-02-29 23:11    [W:0.035 / U:58.396 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site