lkml.org 
[lkml]   [2008]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] mmu notifiers #v5
    On Mon, Feb 04, 2008 at 10:11:24PM -0800, Christoph Lameter wrote:
    > Zero problems only if you find having a single callout for every page
    > acceptable. So the invalidate_range in your patch is only working

    invalidate_pages is only a further optimization that was
    strightforward in some places where the page isn't freed but only the
    pte modified.

    > sometimes. And even if it works then it has to be used on 2M range. Seems
    > to be a bit fragile and needlessly complex.

    The patch as a whole isn't fragile nor complex. Pretending to use
    invalidate_pages anywhere would be complex (and in turn more fragile
    than my current patch, complexity brings fragility).

    Overall you can only argue against performance issues (my patch is
    simpler for GRU/KVM, and it sure isn't fragile, quite the opposite,
    given I never allow a coherency-loss between two threads that will
    read/write to two different physical pages for the same virtual
    adddress in remap_file_pages).

    In performance terms with your patch before GRU can run follow_page it
    has to take a mm-wide global mutex where each thread in all cpus will
    have to take it. That will trash on >4-way when the tlb misses start
    to occour. There's nothing like that in my patch. Your approach will
    micro-optimize certain large pte-mangling calls, or do_exit, but those
    aren't interesting paths nor for GRU nor for KVM. You're optimizing for
    the slow path, and making the fast path slower.

    > "conversion of some page in pages"? A proposal to defer the freeing of the
    > pages until after the pte_unlock?

    There can be many tricks to optimize page in pages, but again munmap
    and do_exit aren't the interesting path to optimzie, nor for GRU nor
    for KVM so it doesn't matter right now.


    \
     
     \ /
      Last update: 2008-02-05 19:11    [W:3.066 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site