Re: [patch 1/2] mm: fincore()

From: Andrew Morton
Date: Sun Feb 17 2013 - 17:56:16 EST

On Sat, 16 Feb 2013 14:53:43 +1030 Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:

> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes:
> > On Fri, 15 Feb 2013 18:13:04 -0500
> > Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
> >> I dunno. The byte vector might not be optimal but its worst cases
> >> seem more attractive, is just as extensible, and dead simple to use.
> >
> > But I think "which pages from this 4TB file are in core" will not be an
> > uncommon usage, and writing a gig of memory to find three pages is just
> > awful.
> Actually, I don't know of any usage for this call.

That's good news ;)

We shouldn't add it unless there's damn good reason.

> I'd really like to use it for backup programs, so they stop pulling
> random crap into memory (but leave things already resident). But that
> needs to madvise(MADV_DONTNEED) on the page, so need mmap.
> So why not just use mincore?

One can use fadvise(POSIX_FADV_DONTNEED) to drop the pages.

Or toss your backup app into a small memcg so it reclaims its own
stuff. See recent thread "mm: fadvise: Drain all pagevecs if
POSIX_FADV_DONTNEED fails to discard all pages"
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at