From: Phillip Susi <psusi@ubuntu.com>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: linux-mm@kvack.org, Minchan Kim <minchan@kernel.org>
Subject: Re: POSIX_FADV_DONTNEED implemented wrong
Date: Fri, 22 Feb 2013 16:52:55 -0500 [thread overview]
Message-ID: <5127E8B7.9080202@ubuntu.com> (raw)
In-Reply-To: <20130222202921.GB4824@cmpxchg.org>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 2/22/2013 3:29 PM, Johannes Weiner wrote:
>> 1) It is completely useless for writing files. This hint
>> should allow a program generating lots of writes to files that
>> will not likely be read again to reduce the cache pressure that
>> causes.
>
> Wouldn't direct IO make more sense in that case?
It could, but doing direct aio is a lot more complicated than just using
posix_fadvise. Also it has problem #3: even if it is unlikely, it
*may* be used again, so it makes sense to cache it if we have plenty
of ram.
> Minchan worked on deactivating pages on truncation. Maybe all it
> takes is to implement deactivate_mapping_range() or something to
> combine a page cache walk with deactivate_page().
Looks like a good idea!
> While you are at it, madvise(MADV_DONTNEED) does not do anything
> to the page cache, but it probably should. :-)
It seems to be implemented by discarding the pages, even if dirty.
This also seems to be wrong. According to posix, this is a hint that
it will not access the pages again any time *soon*, not that the data
will never be needed again and so it can be discarded.
It looks like MADV_SEQUENTIAL is missing the second part of its
implementation: making sure the pages will be discarded soon after
they are accessed.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJRJ+i3AAoJEJrBOlT6nu759/IIAMbFAjJGmI7hkpt1GMtUfty8
n72BoygV3bDULpZ8BybJonRfiVw/ze9sVf6KhojB2dm9bvdZHl11DDGvf9Ro8OSr
dcjWUQxbHzuzGtUtnUEZPOAj6Ux6cetBtmjUxjnLyJrijK+W+cEHzWnzUZXWddlo
XcPe3IHNmj7YlTH+tcPevLCeTlzfFkjq/t4JXuZWmFW97MmMe5wTCScS0eiBYpHM
SVVL+VJ8TPG9Hnk/9oP0RqAyg+SjshGfaqhM8mTFvS4FtMbp/gXFz8GnewxG322h
ZdgwZqafiWsNeC8KitcTwKlxMU5fWFDLfHXKoFWgX2P7hVh8zJ9T6Ugi4KeaAN4=
=RFzN
-----END PGP SIGNATURE-----
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2013-02-22 21:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-22 19:57 POSIX_FADV_DONTNEED implemented wrong Phillip Susi
2013-02-22 20:29 ` Johannes Weiner
2013-02-22 21:52 ` Phillip Susi [this message]
2013-02-23 22:57 ` [PATCH 0/2] FADV_DONTNEED and FADV_NOREUSE Phillip Susi
2013-02-23 22:58 ` [PATCH 1/2] mm: fadvise: fix POSIX_FADV_DONTNEED Phillip Susi
2013-02-24 1:46 ` Dave Hansen
2013-02-24 3:37 ` Phillip Susi
2013-02-24 18:24 ` Dave Hansen
2013-02-24 20:40 ` Phillip Susi
2013-02-24 21:25 ` Dave Hansen
2013-02-24 22:38 ` Phillip Susi
2013-02-25 17:50 ` Dave Hansen
2013-02-24 3:58 ` Zheng Liu
2013-02-24 4:04 ` Phillip Susi
2013-02-26 4:21 ` Minchan Kim
2013-02-26 14:06 ` Andrea Righi
2013-02-26 15:39 ` Phillip Susi
2013-02-23 22:58 ` [PATCH 2/2] mm: fadvise: implement POSIX_FADV_NOREUSE Phillip Susi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5127E8B7.9080202@ubuntu.com \
--to=psusi@ubuntu.com \
--cc=hannes@cmpxchg.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.