From: Andrew Perepechko <anserper@ya.ru>
To: Mel Gorman <mgorman@suse.de>
Cc: Alexey Lyahkov <alexey.lyashkov@gmail.com>,
Robin Dong <sanbai@taobao.com>, Theodore Tso <tytso@mit.edu>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>, Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Bernd Schubert <bernd.schubert@fastmail.fm>,
David Howells <dhowells@redhat.com>,
Trond Myklebust <Trond.Myklebust@netapp.com>,
Linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linux-ext4 <linux-ext4@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Linux-mm <linux-mm@kvack.org>
Subject: Re: [PATCH 0/5] Obey mark_page_accessed hint given by filesystems v3r1
Date: Fri, 17 May 2013 22:36:18 +0400 [thread overview]
Message-ID: <519678A2.5040509@ya.ru> (raw)
In-Reply-To: <1368784087-956-1-git-send-email-mgorman@suse.de>
Mel, thank you very much for the patches!
Unfortunately, it may take some time for us to test them,
because currently we depend very much on an older (2.6.32-based)
kernel.
Andrew
On 05/17/2013 01:48 PM, Mel Gorman wrote:
> This series could still do with some Tested-by's from the original bug
> reporters. Andrew Perepechko?
>
> Changelog since V2
> o Beef up the comments in a number of places (akpm)
> o Remove lru parameter from __lru_cache_add, lru_cache_add_lru (akpm)
> o Use congestion_wait instead of wait_on_page_writeback in case
> of storage disconnects (akpm)
>
> Changelog since V1
> o Add tracepoint to model age of page types (mel)
>
> Andrew Perepechko reported a problem whereby pages are being prematurely
> evicted as the mark_page_accessed() hint is ignored for pages that are
> currently on a pagevec -- http://www.spinics.net/lists/linux-ext4/msg37340.html .
> Alexey Lyahkov and Robin Dong have also reported problems recently that
> could be due to hot pages reaching the end of the inactive list too quickly
> and be reclaimed.
>
> Rather than addressing this on a per-filesystem basis, this series aims
> to fix the mark_page_accessed() interface by deferring what LRU a page
> is added to pagevec drain time and allowing mark_page_accessed() to call
> SetPageActive on a pagevec page.
>
> Patch 1 adds two tracepoints for LRU page activation and insertion. Using
> these processes it's possible to build a model of pages in the
> LRU that can be processed offline.
>
> Patch 2 defers making the decision on what LRU to add a page to until when
> the pagevec is drained.
>
> Patch 3 searches the local pagevec for pages to mark PageActive on
> mark_page_accessed. The changelog explains why only the local
> pagevec is examined.
>
> Patches 4 and 5 tidy up the API.
>
> postmark, a dd-based test and fs-mark both single and threaded mode were
> run but none of them showed any performance degradation or gain as a result
> of the patch.
>
> Using patch 1, I built a *very* basic model of the LRU to examine
> offline what the average age of different page types on the LRU were in
> milliseconds. Of course, capturing the trace distorts the test as it's
> written to local disk but it does not matter for the purposes of this test.
> The average age of pages in milliseconds were
>
> vanilla deferdrain
> Average age mapped anon: 1454 1250
> Average age mapped file: 127841 155552
> Average age unmapped anon: 85 235
> Average age unmapped file: 73633 38884
> Average age unmapped buffers: 74054 116155
>
> The LRU activity was mostly files which you'd expect for a dd-based
> workload. Note that the average age of buffer pages is increased by the
> series and it is expected this is due to the fact that the buffer pages are
> now getting added to the active list when drained from the pagevecs. Note
> that the average age of the unmapped file data is decreased as they are
> still added to the inactive list and are reclaimed before the buffers. There
> is no guarantee this is a universal win for all workloads and it would be
> nice if the filesystem people gave some thought as to whether this decision
> is generally a win or a loss.
>
> fs/cachefiles/rdwr.c | 30 +++---------
> fs/nfs/dir.c | 7 +--
> include/linux/pagevec.h | 34 +-------------
> include/linux/swap.h | 11 +++--
> include/trace/events/pagemap.h | 89 +++++++++++++++++++++++++++++++++++
> mm/rmap.c | 7 +--
> mm/swap.c | 103 ++++++++++++++++++++++++++---------------
> mm/vmscan.c | 4 +-
> 8 files changed, 176 insertions(+), 109 deletions(-)
> create mode 100644 include/trace/events/pagemap.h
>
--
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>
prev parent reply other threads:[~2013-05-17 18:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-17 9:48 [PATCH 0/5] Obey mark_page_accessed hint given by filesystems v3r1 Mel Gorman
2013-05-17 9:48 ` [PATCH 1/5] mm: Add tracepoints for LRU activation and insertions Mel Gorman
2013-05-17 9:48 ` [PATCH 2/5] mm: pagevec: Defer deciding what LRU to add a page to until pagevec drain time Mel Gorman
2013-05-17 20:37 ` Johannes Weiner
2013-05-17 9:48 ` [PATCH 3/5] mm: Activate !PageLRU pages on mark_page_accessed if page is on local pagevec Mel Gorman
2013-05-17 20:39 ` Johannes Weiner
2013-05-17 9:48 ` [PATCH 4/5] mm: Remove lru parameter from __pagevec_lru_add and remove parts of pagevec API Mel Gorman
2013-05-17 20:44 ` Johannes Weiner
2013-05-20 14:38 ` Mel Gorman
2013-05-17 9:48 ` [PATCH 5/5] mm: Remove lru parameter from __lru_cache_add and lru_cache_add_lru Mel Gorman
2013-05-17 20:49 ` Johannes Weiner
2013-05-17 18:36 ` Andrew Perepechko [this message]
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=519678A2.5040509@ya.ru \
--to=anserper@ya.ru \
--cc=Trond.Myklebust@netapp.com \
--cc=akpm@linux-foundation.org \
--cc=alexey.lyashkov@gmail.com \
--cc=bernd.schubert@fastmail.fm \
--cc=dhowells@redhat.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=riel@redhat.com \
--cc=sanbai@taobao.com \
--cc=tytso@mit.edu \
/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).