lkml.org 
[lkml]   [2010]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] Tight check of pfn_valid on sparsemem - v4
    From
    On Fri, Jul 30, 2010 at 9:38 AM, Dave Hansen <dave@linux.vnet.ibm.com> wrote:
    > On Thu, 2010-07-29 at 23:14 +0100, Russell King - ARM Linux wrote:
    >> What we need is something which allows us to handle memory scattered
    >> in several regions of the physical memory map, each bank being a
    >> variable size.
    >
    > Russell, it does sound like you have a pretty pathological case here. :)
    > It's not one that we've really attempted to address on any other
    > architectures.
    >
    > Just to spell it out, if you have 4GB of physical address space, with
    > 512k sections, you need 8192 sections, which means 8192*8 bytes, so it'd
    > eat 64k of memory.  That's the normal SPARSEMEM case.
    >
    > SPARSEMEM_EXTREME would be a bit different.  It's a 2-level lookup.
    > You'd have 16 "section roots", each representing 256MB of address space.
    > Each time we put memory under one of those roots, we'd fill in a
    > 512-section second-level table, which is designed to always fit into one
    > page.  If you start at 256MB, you won't waste all those entries.
    >
    > The disadvantage of SPARSEMEM_EXTREME is that it costs you the extra
    > level in the lookup.  The space loss in arm's case would only be 16
    > pointers, which would more than be made up for by the other gains.
    >
    > The other case where it really makes no sense is when you're populating
    > a single (or small number) of sections, evenly across the address space.
    > For instance, let's say you have 16 512k banks, evenly spaced at 256MB
    > intervals:
    >
    >        512k@0x00000000
    >        512k@0x10000000
    >        512k@0x20000000
    >        ...
    >        512k@0xF0000000
    >
    > If you use SPARSEMEM_EXTREME on that it will degenerate to having the
    > same memory consumption as classic SPARSEMEM, along with the extra
    > lookup of EXTREME.  But, I haven't heard you say that you have this kind
    > of configuration, yet. :)
    >
    > SPARSEMEM_EXTREME is really easy to test.  You just have to set it in
    > your .config.  To get much use out of it, you'd also need to make the
    > SECTION_SIZE, like the 512k we were talking about.
    >

    Thanks for good explanation.
    When this problem happened, I suggested to use section size 16M.
    The space isn't a big cost but failed since Russell doesn't like it.

    So I tried to enhance sparsemem to support hole but you guys doesn't like it.
    Frankly speaking myself don't like this approach but I think whoever
    have to care of the problem.

    Hmm, Is it better to give up Samsung's good embedded board?
    It depends on Russell's opinion.

    I will hold this patch until reaching the conclusion of controversial
    discussion.
    Thanks, Dave.

    > -- Dave
    >
    >



    --
    Kind regards,
    Minchan Kim
    --
    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/

    \
     
     \ /
      Last update: 2010-07-30 11:47    [W:0.028 / U:30.488 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site