lkml.org 
[lkml]   [2002]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Note describing poor dcache utilization under high memory pressure
    On Tue, 29 Jan 2002, Daniel Phillips wrote:

    > On January 29, 2002 06:25 pm, Rik van Riel wrote:
    > > On Tue, 29 Jan 2002, Oliver Xymoron wrote:
    > >
    > > > Daniel's approach seems to be workable (once he's spelled out all the
    > > > details) but it misses the big performance win for fork/exec, which is
    > > > surely the common case. Given that exec will be throwing away all these
    > > > mappings, we can safely assume that we will not be inheriting many shared
    > > > mappings from parents of parents so Daniel's approach also still ends up
    > > > marking most of the pages RO still.
    > >
    > > It gets worse. His approach also needs to adjust the reference
    > > counts on all pages (and swap pages).
    >
    > Well, Rik, time to present your algorithm. I assume it won't reference
    > counts on pages, and will do some kind of traversal of the mm tree. Note
    > however, that I did investigate the class of algorithm you are interested in,
    > and found only nasty, complex solutions there, with challenging locking
    > problems. (I also looked at a number of possible improvements to virtual
    > scanning, as you know, and likewise only found ugly or inadequate solutions.)

    I think it goes something like this:

    fork:
    detach page tables from parent
    retain pointer to "backing page tables" in parent and child
    update use count in page tables
    "prefault" tables for current stack and instruction pages in both parent
    and child

    page fault:
    if faulted on page table:
    look up backing page tables
    if use count > 1: copy, dec use count
    else: take ownership

    > Before you sink a lot of time into it though, you might add up the actual
    > overhead you're worried about above, and see if it moves the needle in a real
    > system.

    I'm pretty sure something like the above does signficantly less work in
    the fork/exec case, which is the important one.

    --
    "Love the dolphins," she advised him. "Write by W.A.S.T.E.."

    -
    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: 2005-03-22 13:15    [W:4.452 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site