lkml.org 
[lkml]   [2007]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    Subject[RFC/PATCH 0/12] WIP mmu_gather and PTE accessors work
    This is a snapshot of my current work on PTE accessors and
    mmu_gather. It's not complete but it should show the direction
    I'm heading toward.

    The main goals are:

    - Make mmu_gather used for all page table walk operations that
    also need to invalidate TLB entries, thus obsoleting flush_tlb_range()
    and flush_tlb_mm() as generic APIs to the TLB flushing.

    - Make mmu_gather stack based. The cleans quite a bit of stuff up,
    and once fully done, should allow to reduce latencies caused by the
    need to use get_cpu() for a long time.

    - Make mmu_gather more flexible so that archs who need to do more than
    what the standard implementation does don't have to copy all of it and
    do their own implementation.

    - Make mmu_gather suitable for batching on powerpc :-) This involves
    mostly adding a hook before PTE pages are unlocked and some work on
    the interaction between PTE accessors and tlb_remove_tlb_entry()

    - Remove other remaings of flush_tlb_*, keeping only for now
    flush_tlb_kernel_range() which will be harder to "fix" (provided we
    want to do it at all)

    - Go through all remaining page table accessors, remove all the unused
    ones (there's still a few), there should be only a handful left and redo
    the documentation accordingly.

    These goals are _NOT_ yet met by this patch serie and some of the bits
    in there may want to be done a bit differently. As I did the patches,
    and hacked various archs, I got a better visibility on what is done and
    why and thus some of my initial directions end up not looking so good.

    Most notably, the MMF_DEAD flag doesn't sound like such a good idea
    anymore and I'm considering instead replacing ptep_get_and_clear()
    and tlb_remove_tlb_entry() with a version that takes the batch as an
    argument.

    Also, I haven't fully moved the batch off the per-cpu, only "part 1" is
    there at this stage.

    However, I'll be travelling for a while and won't have much time to work
    on it until I'm back mid september, so I decided now was a good time to
    post what I have for comments and discussions on the approach taken.

    Cheers,
    Ben.
    -
    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: 2007-08-07 09:23    [W:0.046 / U:0.360 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site