From: Mel Gorman <mel@csn.ul.ie>
To: xfs@oss.sgi.com
Cc: Alex Elder <aelder@sgi.com>, Dave Chinner <david@fromorbit.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: [RFC PATCH] fs,xfs: Use __GFP_MOVABLE for XFS buffers
Date: Thu, 9 Sep 2010 12:11:32 +0100 [thread overview]
Message-ID: <20100909111131.GO29263@csn.ul.ie> (raw)
Fragmentation avoidance in the kernel depends on reclaimable and movable
allocations being marked-up at page allocation time. Reclaimable allocations
refer to slab caches such as inode caches which can be reclaimed although
not necessarily in a targetted fashion. Movable pages are those pages that
can be moved to backing storage (during page reclaim) or migrated.
When testing against XFS, it was noticed that large page allocation rates
against XFS were far lower than expected in comparison to ext3. Investigation
showed that buffer pages allocated by XFS are placed on the LRU but not
marked __GFP_MOVABLE at allocation time.
This patch updates xb_to_gfp() to specify __GFP_MOVABLE and is correct iff
all pages allocated from a mask derived from xb_to_gfp() are guaranteed to
be movable be it via page reclaim or page migration. It needs an XFS expert
to make that determination but when applied, huge page allocation success
rates are similar to those seen on tests backed by ext3.
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
---
fs/xfs/linux-2.6/xfs_buf.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index ea79072..93f3fb0 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -67,7 +67,7 @@ struct workqueue_struct *xfsconvertd_workqueue;
#define xb_to_gfp(flags) \
((((flags) & XBF_READ_AHEAD) ? __GFP_NORETRY : \
- ((flags) & XBF_DONT_BLOCK) ? GFP_NOFS : GFP_KERNEL) | __GFP_NOWARN)
+ ((flags) & XBF_DONT_BLOCK) ? GFP_NOFS : GFP_KERNEL) | __GFP_NOWARN | __GFP_MOVABLE)
#define xb_to_km(flags) \
(((flags) & XBF_DONT_BLOCK) ? KM_NOFS : KM_SLEEP)
--
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 reply other threads:[~2010-09-09 11:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-09 11:11 Mel Gorman [this message]
2010-09-10 0:37 ` [RFC PATCH] fs,xfs: Use __GFP_MOVABLE for XFS buffers Dave Chinner
2010-09-10 8:33 ` Mel Gorman
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=20100909111131.GO29263@csn.ul.ie \
--to=mel@csn.ul.ie \
--cc=aelder@sgi.com \
--cc=david@fromorbit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=xfs@oss.sgi.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).