From: Brice Goglin <Brice.Goglin@inria.fr>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Andrew Morton <akpm@osdl.org>,
Nathalie Furmento <nathalie.furmento@labri.fr>
Subject: [PATCH 0/5] mm: rework sys_move_pages() to avoid vmalloc and reduce the overhead
Date: Mon, 13 Oct 2008 22:19:19 +0200 [thread overview]
Message-ID: <48F3AD47.1050301@inria.fr> (raw)
Hello,
Here's the first patchset reworking sys_move_pages() as discussed earlier.
It removes the possibly large vmalloc by using multiple chunks when migrating
large buffers. It also dramatically increases the throughput for large buffers
since the lookup in new_page_node() is now limited to a single chunk, causing
the quadratic complexity to have a much slower impact. There is no need to use
any radix-tree-like structure to improve this lookup.
sys_move_pages() duration on a 4-quadcore-opteron 2347HE (1.9Gz), migrating
between nodes #2 and #3:
length move_pages (us) move_pages+patch (us)
4kB 126 98
40kB 198 168
400kB 963 937
4MB 12503 11930
40MB 246867 11848
Patches #1 and #4 are the important ones:
1) stop returning -ENOENT from sys_move_pages() if nothing got migrated
2) don't vmalloc a huge page_to_node array for do_pages_stat()
3) extract do_pages_move() out of sys_move_pages()
4) rework do_pages_move() to work on page_sized chunks
5) move_pages: no need to set pp->page to ZERO_PAGE(0) by default
thanks,
Brice
WARNING: multiple messages have this Message-ID (diff)
From: Brice Goglin <Brice.Goglin@inria.fr>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Andrew Morton <akpm@osdl.org>,
Nathalie Furmento <nathalie.furmento@labri.fr>
Subject: [PATCH 0/5] mm: rework sys_move_pages() to avoid vmalloc and reduce the overhead
Date: Mon, 13 Oct 2008 22:19:19 +0200 [thread overview]
Message-ID: <48F3AD47.1050301@inria.fr> (raw)
Hello,
Here's the first patchset reworking sys_move_pages() as discussed earlier.
It removes the possibly large vmalloc by using multiple chunks when migrating
large buffers. It also dramatically increases the throughput for large buffers
since the lookup in new_page_node() is now limited to a single chunk, causing
the quadratic complexity to have a much slower impact. There is no need to use
any radix-tree-like structure to improve this lookup.
sys_move_pages() duration on a 4-quadcore-opteron 2347HE (1.9Gz), migrating
between nodes #2 and #3:
length move_pages (us) move_pages+patch (us)
4kB 126 98
40kB 198 168
400kB 963 937
4MB 12503 11930
40MB 246867 11848
Patches #1 and #4 are the important ones:
1) stop returning -ENOENT from sys_move_pages() if nothing got migrated
2) don't vmalloc a huge page_to_node array for do_pages_stat()
3) extract do_pages_move() out of sys_move_pages()
4) rework do_pages_move() to work on page_sized chunks
5) move_pages: no need to set pp->page to ZERO_PAGE(0) by default
thanks,
Brice
--
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:[~2008-10-13 20:20 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-13 20:19 Brice Goglin [this message]
2008-10-13 20:19 ` [PATCH 0/5] mm: rework sys_move_pages() to avoid vmalloc and reduce the overhead Brice Goglin
2008-10-13 20:21 ` [PATCH 1/5] mm: stop returning -ENOENT from sys_move_pages() if nothing got migrated Brice Goglin
2008-10-13 20:21 ` Brice Goglin
2008-10-16 19:34 ` Christoph Lameter
2008-10-16 19:34 ` Christoph Lameter
2008-10-13 20:21 ` [PATCH 2/5] mm: don't vmalloc a huge page_to_node array for do_pages_stat() Brice Goglin
2008-10-13 20:21 ` Brice Goglin
2008-10-16 19:39 ` Christoph Lameter
2008-10-16 19:39 ` Christoph Lameter
2008-10-13 20:22 ` [PATCH 3/5] mm: extract do_pages_move() out of sys_move_pages() Brice Goglin
2008-10-13 20:22 ` Brice Goglin
2008-10-16 19:40 ` Christoph Lameter
2008-10-16 19:40 ` Christoph Lameter
2008-10-13 20:22 ` [PATCH 4/5] mm: rework do_pages_move() to work on page_sized chunks Brice Goglin
2008-10-13 20:22 ` Brice Goglin
2008-10-16 19:51 ` Christoph Lameter
2008-10-16 19:51 ` Christoph Lameter
2008-10-16 21:18 ` Brice Goglin
2008-10-16 21:18 ` Brice Goglin
2008-10-17 11:35 ` [RESEND][PATCH] " Brice Goglin
2008-10-17 11:35 ` Brice Goglin
2008-10-17 13:10 ` Christoph Lameter
2008-10-17 13:10 ` Christoph Lameter
2008-10-13 20:23 ` [PATCH 5/5] mm: move_pages: no need to set pp->page to ZERO_PAGE(0) by default Brice Goglin
2008-10-13 20:23 ` Brice Goglin
2008-10-16 19:42 ` Christoph Lameter
2008-10-16 19:42 ` Christoph Lameter
2008-10-14 20:53 ` [PATCH 0/5] mm: rework sys_move_pages() to avoid vmalloc and reduce the overhead Brice Goglin
2008-10-14 20:53 ` Brice Goglin
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=48F3AD47.1050301@inria.fr \
--to=brice.goglin@inria.fr \
--cc=akpm@osdl.org \
--cc=cl@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nathalie.furmento@labri.fr \
/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.