lkml.org 
[lkml]   [2011]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] fadvise: move active pages to inactive list with POSIX_FADV_DONTNEED
    On Thu, Jun 23, 2011 at 08:10:47AM -0400, Theodore Tso wrote:
    >
    > On Jun 23, 2011, at 2:36 AM, Andrea Righi wrote:
    >
    > >
    > > With the following solution when posix_fadvise(POSIX_FADV_DONTNEED) is
    > > called for an active page instead of removing it from the page cache it
    > > is added to the tail of the inactive list. Otherwise, if it's already in
    > > the inactive list the page is removed from the page cache.
    >
    >
    > Have you thought about this heuristic? If the page is active, try to
    > remove it from the current process's page table. If that drops the
    > use count of the page to zero, then drop it from the page cache;
    > otherwise, leave it alone.
    >
    > That way, if the page is being used by anyone else, we don't touch
    > the page at all. fadvise() should only affect the current process; if
    > it's available to non-root users, it shouldn't be affecting other
    > processes, and if it is being actively used by some other process,
    > removing it from their page tables so it can be put on the inactive
    > list counts as interference, doesn't it?

    If the page is mapped in other process page tables we don't touch the
    page at all (see lru_deactivate_fn in mm/swap.c).

    So the heuristic above it's already implemented. I should have said this
    explicitly in my description...

    -Andrea


    \
     
     \ /
      Last update: 2011-06-23 15:41    [W:4.168 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site