[lkml]   [2005]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 2/2] page table iterators
    On Sun, 2005-02-20 at 22:40 -0800, Andrew Morton wrote:
    > Hugh Dickins <> wrote:
    > >
    > > My opinion FWIW: I'm all for regularizing the pagetable loops to
    > > work the same way, changing their variables to use the same names,
    > > improving their efficiency; but I do like to see what a loop is up to.
    > >
    > > list_for_each and friends are very widely used, they're fine, and I'm
    > > quite glad to have their prefetching hidden away from me; but usually
    > > I groan, grin and bear it, each time someone devises a clever new
    > > for_each macro concealing half the details of some specialist loop.
    > >
    > > In a minority?
    > Of two.

    Well, we basically have that bunch of loops that all do the same thing
    to iterate the page tables. Only the inner part is different (that is
    what is done on each PTE).

    All of them are slightly differently implemented, some check overflow,
    some don't, some have redudant checking, some aren't even consistent
    between all 3/4 loops of a given walk routine set, and we have seen the
    tendency to introduce subtle bugs in one of them when they all have to
    be changed for some reason.

    I'm all for turning them into something more consistent, and I like the
    for_each_* idea...

    It also allows to completely remove the code of the unused levels on 2
    and 3 level page tables easily, regaining some of the perfs lost by the
    move to 4 levels.

    Now, we also need, in the long run, to improve perfs of walking the page
    tables, especially PTEs, for things like tearing down processes or fork,
    for example via a bitmap of used PGD entries etc...

    With proper iterators, such a thing could be implemented just by
    modifying the iterator, and all loops would benefit from it.

    I think that is enough to justify the move.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:10    [W:0.024 / U:30.812 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site