lkml.org 
[lkml]   [2011]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRE: [PATCH 1/14] mm: invalidate_mapping_pages flush cleancache
    > From: Hugh Dickins [mailto:hughd@google.com]
    > Sent: Monday, May 30, 2011 6:36 PM
    > To: Andrew Morton
    > Cc: Dan Magenheimer; linux-kernel@vger.kernel.org; linux-mm@kvack.org
    > Subject: [PATCH 1/14] mm: invalidate_mapping_pages flush cleancache
    >
    > truncate_inode_pages_range() and invalidate_inode_pages2_range()
    > call cleancache_flush_inode(mapping) before and after: shouldn't
    > invalidate_mapping_pages() be doing the same?
    >
    > Signed-off-by: Hugh Dickins <hughd@google.com>
    > Cc: Dan Magenheimer <dan.magenheimer@oracle.com>
    > ---
    > mm/truncate.c | 2 ++
    > 1 file changed, 2 insertions(+)
    >
    > --- linux.orig/mm/truncate.c 2011-05-30 13:56:10.416798124 -0700
    > +++ linux/mm/truncate.c 2011-05-30 14:08:46.612547848 -0700
    > @@ -333,6 +333,7 @@ unsigned long invalidate_mapping_pages(s
    > unsigned long count = 0;
    > int i;
    >
    > + cleancache_flush_inode(mapping);
    > pagevec_init(&pvec, 0);
    > while (next <= end &&
    > pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)) {
    > @@ -373,6 +374,7 @@ unsigned long invalidate_mapping_pages(s
    > mem_cgroup_uncharge_end();
    > cond_resched();
    > }
    > + cleancache_flush_inode(mapping);
    > return count;
    > }
    > EXPORT_SYMBOL(invalidate_mapping_pages);

    Hi Hugh --

    I don't claim to be an expert on VFS, and so I have cc'ed
    Chris Mason who originally placed the cleancache hooks
    in VFS, but I think this patch is unnecessary. Instead
    of flushing ALL of the cleancache pages belonging to
    the inode with cleancache_flush_inode, the existing code
    eventually calls __delete_from_page_cache on EACH page
    that is being invalidated. And since __delete_from_page_cache
    calls cleancache_flush_page, only that subset of pages
    in the mapping that invalidate_mapping_pages() would
    invalidate (which, from the comment above the routine
    indicates, is only *unlocked* pages) is removed from
    cleancache.

    However, there may be some path through VFS I am missing
    or something else subtle I am misunderstanding so please
    clarify if either is true.

    Thanks,
    Dan
    ---
    Thanks... for the memory!
    I really could use more / my throughput's on the floor
    The balloon is flat / my swap disk's fat / I've OOM's in store
    Overcommitted so much
    (with apologies to Bob Hope)



    \
     
     \ /
      Last update: 2011-05-31 17:57    [W:0.025 / U:31.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site