lkml.org 
[lkml]   [2010]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 06/20] early_res: seperate common memmap func from e820.c to fw_memmap.cy

    * Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:

    >
    > > I though one possibility would be to have LMB regions become more lists
    > > than arrays, so that the static storage only needs to cover as much as
    > > is needed during really early boot (and we could probably still move the
    > > BSS top point on some archs to dynamically make more ... actually we
    > > could be smart arses and use LMB to allocate more LMB list heads if we
    > > are reaching the table limit :-)
    >
    > Actually what about that:
    >
    > LMB entries are linked-listed. The array is just storage for those entry
    > "heads".
    >
    > The initial static array only needs to be big enough for very very early
    > platform specific kernel bits and pieces, so it could even be sized by a
    > Kconfig option. Or it could just use a klimit moving trick to pick up a
    > page right after the BSS but that may need to be arch specific.
    >
    > lmb_init() queues all the entries from the initial array in a freelist
    >
    > lmb_alloc() and lmb_reserve() just pop entries from that freelist to
    > populate the two main linked lists (memory and reserved).
    >
    > When something tries to dequeue up the last freelist entry, then under
    > the hood, LMB uses it instead to allocate a new block of LMB entries
    > that gets added to the freelist.
    >
    > We never free blocks of LMB entries.
    >
    > That way, we can fine tine the static array to be as small as we can
    > realistically make it be, and we have no boundary limitations on the
    > amount of entries in either the memory list or the reserved list.
    >
    > I'm a bit too flat out right now to write code, but if there's no objection,
    > I might give that a go either later this week or next week, see if I can
    > replace bootmem on powerpc.

    That would be fantastic! PowerPC and x86 both doing it would give it enough of
    a critical mass to make the removal of bootmem realistic.

    Thanks,

    Ingo


    \
     
     \ /
      Last update: 2010-03-24 10:03    [W:3.386 / U:1.428 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site