From: Mel Gorman <mgorman@suse.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
Colin King <colin.king@canonical.com>,
Raghavendra D Prabhu <raghu.prabhu13@gmail.com>,
Jan Kara <jack@suse.cz>, Chris Mason <chris.mason@oracle.com>,
Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>, Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-ext4 <linux-ext4@vger.kernel.org>,
Mel Gorman <mgorman@suse.de>
Subject: [PATCH 0/3] Reduce impact to overall system of SLUB using high-order allocations
Date: Wed, 11 May 2011 16:29:30 +0100 [thread overview]
Message-ID: <1305127773-10570-1-git-send-email-mgorman@suse.de> (raw)
Debian (and probably Ubuntu) have recently have changed to the default
option of SLUB. There are a few reports of people experiencing hangs
when copying large amounts of data with kswapd using a large amount of
CPU. It appears this is down to SLUB using high orders by default and
the page allocator and reclaim struggling to keep up. The following
three patches reduce the cost of using those high orders.
Patch 1 prevents kswapd waking up in response to SLUBs speculative
use of high orders. This eliminates the hangs and while the
system can still stall for long periods, it recovers.
Patch 2 further reduces the cost by prevent SLUB entering direct
compaction or reclaim paths on the grounds that falling
back to order-0 should be cheaper.
Patch 3 defaults SLUB to using order-0 on the grounds that the
systems that heavily benefit from using high-order are also
sized to fit in physical memory. On such systems, they should
manually tune slub_max_order=3.
My own data on this is not great. I haven't really been able to
reproduce the same problem locally but a significant failing is
that the tests weren't stressing X but I couldn't make meaningful
comparisons by just randomly clicking on things (working on fixing
this problem).
The test case is simple. "download tar" wgets a large tar file and
stores it locally. "unpack" is expanding it (15 times physical RAM
in this case) and "delete source dirs" is the tarfile being deleted
again. I also experimented with having the tar copied numerous times
and into deeper directories to increase the size but the results were
not particularly interesting so I left it as one tar.
Test server, 4 CPU threads (AMD Phenom), x86_64, 2G of RAM, no X running
- nowake
largecopy-vanilla kswapd-v1r1 noexstep-v1r1 default0-v1r1
download tar 94 ( 0.00%) 94 ( 0.00%) 94 ( 0.00%) 93 ( 1.08%)
unpack tar 521 ( 0.00%) 551 (-5.44%) 482 ( 8.09%) 488 ( 6.76%)
delete source dirs 208 ( 0.00%) 218 (-4.59%) 194 ( 7.22%) 194 ( 7.22%)
MMTests Statistics: duration
User/Sys Time Running Test (seconds) 740.82 777.73 739.98 747.47
Total Elapsed Time (seconds) 1046.66 1273.91 962.47 936.17
Disabling kswapd alone hurts performance slightly even though testers
report it fixes hangs. I would guess it's because SLUB callers are
calling direct reclaim more frequently (I belatedly noticed that
compaction was disabled so it's not a factor) but haven't confirmed
it. However, preventing kswapd waking or entering direct reclaim and
having SLUB falling back to order-0 performed noticeably faster. Just
using order-0 in the first place was fastest of all.
I tried running the same test on a test laptop but unfortunately
due to a misconfiguration the results were lost. It would take a few
hours to rerun so am posting without them.
If the testers verify this series help and we agree the patches are
appropriate, they should be considered a stable candidate for 2.6.38.
Documentation/vm/slub.txt | 2 +-
mm/page_alloc.c | 3 ++-
mm/slub.c | 5 +++--
3 files changed, 6 insertions(+), 4 deletions(-)
--
1.7.3.4
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2011-05-11 15:29 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-11 15:29 Mel Gorman [this message]
2011-05-11 15:29 ` [PATCH 1/3] mm: slub: Do not wake kswapd for SLUBs speculative high-order allocations Mel Gorman
2011-05-11 20:38 ` David Rientjes
2011-05-11 15:29 ` [PATCH 2/3] mm: slub: Do not take expensive steps " Mel Gorman
2011-05-11 20:38 ` David Rientjes
2011-05-11 21:10 ` Mel Gorman
2011-05-12 17:25 ` Andrea Arcangeli
2011-05-11 15:29 ` [PATCH 3/3] mm: slub: Default slub_max_order to 0 Mel Gorman
2011-05-11 20:38 ` David Rientjes
2011-05-11 20:53 ` James Bottomley
2011-05-11 21:09 ` Mel Gorman
2011-05-11 22:27 ` David Rientjes
2011-05-13 10:14 ` Mel Gorman
2011-05-12 17:36 ` Andrea Arcangeli
2011-05-16 21:03 ` David Rientjes
2011-05-17 9:48 ` Mel Gorman
2011-05-17 19:25 ` David Rientjes
2011-05-12 14:43 ` Christoph Lameter
2011-05-12 15:15 ` James Bottomley
2011-05-12 15:27 ` Christoph Lameter
2011-05-12 15:43 ` James Bottomley
2011-05-12 15:46 ` Dave Jones
2011-05-12 16:00 ` James Bottomley
2011-05-12 16:08 ` Dave Jones
2011-05-12 16:27 ` Christoph Lameter
2011-05-12 16:30 ` James Bottomley
2011-05-12 16:48 ` Christoph Lameter
2011-05-12 17:46 ` Andrea Arcangeli
2011-05-12 18:00 ` Christoph Lameter
2011-05-12 18:18 ` Andrea Arcangeli
2011-05-12 17:06 ` Pekka Enberg
2011-05-12 17:11 ` Pekka Enberg
2011-05-12 17:38 ` Christoph Lameter
2011-05-12 18:00 ` Andrea Arcangeli
2011-05-13 9:49 ` Mel Gorman
2011-05-15 16:39 ` Andrea Arcangeli
2011-05-16 8:42 ` Mel Gorman
2011-05-12 17:51 ` Andrea Arcangeli
2011-05-12 18:03 ` Christoph Lameter
2011-05-12 18:09 ` Andrea Arcangeli
2011-05-12 18:16 ` Christoph Lameter
2011-05-12 18:36 ` James Bottomley
2011-05-12 17:40 ` Andrea Arcangeli
2011-05-12 15:55 ` Pekka Enberg
2011-05-12 18:37 ` James Bottomley
2011-05-12 18:46 ` Christoph Lameter
2011-05-12 19:21 ` James Bottomley
2011-05-12 19:44 ` James Bottomley
2011-05-12 20:04 ` James Bottomley
2011-05-12 20:29 ` Johannes Weiner
2011-05-12 20:31 ` Johannes Weiner
2011-05-12 20:31 ` James Bottomley
2011-05-12 22:04 ` James Bottomley
2011-05-12 22:15 ` Johannes Weiner
2011-05-12 22:58 ` Minchan Kim
2011-05-13 5:39 ` Minchan Kim
2011-05-13 0:47 ` James Bottomley
2011-05-13 4:12 ` James Bottomley
2011-05-13 10:55 ` Mel Gorman
2011-05-13 14:16 ` James Bottomley
2011-05-13 10:30 ` Mel Gorman
2011-05-13 6:16 ` Pekka Enberg
2011-05-13 10:05 ` Mel Gorman
2011-05-12 16:01 ` Christoph Lameter
2011-05-12 16:10 ` Eric Dumazet
2011-05-12 17:37 ` Andrew Morton
2011-05-12 15:45 ` Dave Jones
2011-05-11 21:39 ` [PATCH 0/3] Reduce impact to overall system of SLUB using high-order allocations James Bottomley
2011-05-11 22:28 ` David Rientjes
2011-05-11 22:34 ` James Bottomley
2011-05-12 11:13 ` Pekka Enberg
2011-05-12 13:19 ` Mel Gorman
2011-05-12 14:04 ` James Bottomley
2011-05-12 15:53 ` James Bottomley
2011-05-13 11:25 ` Mel Gorman
2011-05-12 18:04 ` Andrea Arcangeli
2011-05-13 11:24 ` 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=1305127773-10570-1-git-send-email-mgorman@suse.de \
--to=mgorman@suse.de \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=chris.mason@oracle.com \
--cc=cl@linux.com \
--cc=colin.king@canonical.com \
--cc=hannes@cmpxchg.org \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=raghu.prabhu13@gmail.com \
--cc=riel@redhat.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).