Messages in this thread | | | Date | Fri, 13 Apr 2007 17:10:35 -0700 | From | Chris Wright <> | Subject | Re: Crash while mapping memory in pagetable_init() (Was: Re: .config) |
| |
* Jeremy Fitzhardinge (jeremy@goop.org) wrote: > Subject: i386: map enough initial memory to create lowmem mappings > > head.S creates the very initial pagetable for the kernel. This just > maps enough space for the kernel itself, and an allocation bitmap. > The amount of mapped memory is rounded up to 4Mbytes, and so this > typically ends up mapping 8Mbytes of memory. > > When booting, pagetable_init() needs to create mappings for all > lowmem, and the pagetables for these mappings are allocated from the > free pages around the kernel in low memory. If the number of > pagetable pages + kernel size exceeds head.S's initial mapping, it > will end up faulting on an unmapped page. This will only happen with > specific combinations of kernel size and memory size. > > This patch makes sure that head.S also maps enough space to fit the > kernel pagetables as well as the kernel itself. It ends up using an > additional two pages of unreclaimable memory.
Yup, fixes it up here, nice catch.
Acked-by: Chris Wright <chrisw@sous-sol.org> - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |