From: Mel Gorman <mgorman@suse.de>
To: Alexey Lyahkov <alexey.lyashkov@gmail.com>
Cc: Theodore Ts'o <tytso@mit.edu>, Andrew Perepechko <anserper@ya.ru>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>,
Bernd Schubert <bernd.schubert@fastmail.fm>,
Will Huck <will.huckk@gmail.com>,
linux-ext4@vger.kernel.org, linux-mm@kvack.org
Subject: Re: page eviction from the buddy cache
Date: Thu, 25 Apr 2013 23:40:35 +0100 [thread overview]
Message-ID: <20130425224035.GG2144@suse.de> (raw)
In-Reply-To: <7398CEE9-AF68-4A2A-82E4-940FADF81F97@gmail.com>
On Thu, Apr 25, 2013 at 09:37:07PM +0300, Alexey Lyahkov wrote:
> Mel,
>
>
> On Apr 25, 2013, at 17:30, Mel Gorman wrote:
>
> > On Wed, Apr 24, 2013 at 10:26:50AM -0400, Theodore Ts'o wrote:
> >> On Tue, Apr 23, 2013 at 03:00:08PM -0700, Andrew Morton wrote:
> >>> That should fix things for now. Although it might be better to just do
> >>>
> >>> mark_page_accessed(page); /* to SetPageReferenced */
> >>> lru_add_drain(); /* to SetPageLRU */
> >>>
> >>> Because a) this was too early to decide that the page is
> >>> super-important and b) the second touch of this page should have a
> >>> mark_page_accessed() in it already.
> >>
> >> The question is do we really want to put lru_add_drain() into the ext4
> >> file system code? That seems to pushing some fairly mm-specific
> >> knowledge into file system code. I'll do this if I have to do, but
> >> wouldn't be better if this was pushed into mark_page_accessed(), or
> >> some other new API was exported by the mm subsystem?
> >>
> >
> > I don't think we want to push lru_add_drain() into the ext4 code. It's
> > too specific of knowledge just to work around pagevecs. Before we rework
> > how pagevecs select what LRU to place a page, can we make sure that fixing
> > that will fix the problem?
> >
> what is "that"? puting lru_add_drain() in ext4 core? sure that is fixes problem with many small reads during large write.
> originally i have put shake_page() in ext4 code, but that have call lru_add_drain_all() so to exaggerated.
>
No, I would prefer if this was not fixed within ext4. I need confirmation
that fixing mark_page_accessed() addresses the performance problem you
encounter. The two-line check for PageLRU() followed by a lru_add_drain()
is meant to check that. That is still not my preferred fix because even
if you do not encounter higher LRU contention, other workloads would be
at risk. The likely fix will involve converting pagevecs to using a single
list and then selecting what LRU to put a page on at drain time but I
want to know that it's worthwhile.
Using shake_page() in ext4 is certainly overkill.
> > Andrew, can you try the following patch please? Also, is there any chance
> > you can describe in more detail what the workload does?
>
> lustre OSS node + IOR with file size twice more then OSS memory.
>
Ok, no way I'll be reproducing that workload. Thanks.
--
Mel Gorman
SUSE Labs
--
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-04-25 22:40 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <51504A40.6020604@ya.ru>
[not found] ` <20130327150743.GC14900@thunk.org>
2013-03-27 19:24 ` page eviction from the buddy cache Hugh Dickins
2013-03-28 5:34 ` Alexey Lyahkov
2013-04-04 1:24 ` Will Huck
2013-04-04 4:51 ` Alexey Lyahkov
2013-04-20 21:18 ` Bernd Schubert
2013-04-20 23:57 ` Theodore Ts'o
2013-04-22 12:14 ` Alexey Lyahkov
2013-04-23 12:02 ` Bernd Schubert
2013-04-23 12:27 ` Theodore Ts'o
2013-04-23 19:57 ` Hugh Dickins
2013-04-23 22:00 ` Andrew Morton
2013-04-23 22:31 ` Hugh Dickins
2013-04-24 14:26 ` Theodore Ts'o
2013-04-24 21:41 ` Andrew Morton
2013-04-25 8:18 ` Alexey Lyahkov
2013-04-25 14:30 ` Mel Gorman
2013-04-25 18:37 ` Alexey Lyahkov
2013-04-25 22:40 ` Mel Gorman [this message]
2013-04-26 6:03 ` Alexey Lyahkov
2013-04-22 12:18 ` Alexey Lyahkov
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=20130425224035.GG2144@suse.de \
--to=mgorman@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alexey.lyashkov@gmail.com \
--cc=anserper@ya.ru \
--cc=bernd.schubert@fastmail.fm \
--cc=hughd@google.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=tytso@mit.edu \
--cc=will.huckk@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).