linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: akpm@osdl.org
Cc: Mike Kravetz <kravetz@us.ibm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Christoph Lameter <clameter@sgi.com>,
	Magnus Damm <magnus.damm@gmail.com>,
	Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Subject: [PATCH 0/4] Swap migration V3: Overview
Date: Thu, 20 Oct 2005 15:59:35 -0700 (PDT)	[thread overview]
Message-ID: <20051020225935.19761.57434.sendpatchset@schroedinger.engr.sgi.com> (raw)

Changes from V2 to V3:
- Break out common code for page eviction (Thanks to a patch by Magnus Damm)
- Add check to avoid MPOL_MF_MOVE moving pages that are also accessed from
  another address space. Add support for MPOL_MF_MOVE_ALL to override this
  (requires superuser priviledges).
- Update overview regarding direct page migration patchset following soon and
  cut longwinded explanations.
- Add sys_migrate patchset
- Check cpuset restrictions on sys_migrate.

Changes from V1 to V2:
- Patch against 2.6.14-rc4-mm1
- Remove move_pages() function
- Code cleanup to make it less invasive.
- Fix missing lru_add_drain() invocation from isolate_lru_page()

In a NUMA system it is often beneficial to be able to move the memory
in use by a process to different nodes in order to enhance performance.
Currently Linux simply does not support this facility. This patchset
implements page migration via a new syscall sys_migrate_pages and via
the memory policy layer with the MPOL_MF_MOVE and MPOL_MF_MOVE_ALL
flags.

Page migration is also useful for other purposes:

1. Memory hotplug. Migrating processes off a memory node that is going
   to be disconnected.

2. Remapping of bad pages. These could be detected through soft ECC errors
   and other mechanisms.

This patchset realizes swap based page migration. Another patchset will
follow soon (done by Mike Kravetz and me based on the hotplug direct page
migration code, draft exists) that implements direct page migration on top
of the framework established by the swap based page migration patchset.

The advantage of page based swapping is that the necessary changes to the kernel
are minimal. With a fully functional but minimal page migration capability we
will be able to enhance low level code and higher level APIs at the same time.
This will hopefully decrease the time needed to get the code for direct page
migration working and into the kernel trees. We hope that the swap based
page migration will be included in 2.6.15.

The patchset consists of two patches:

1. LRU operations

Add basic operations to remove pages from the LRU lists and return
them back to it.

2. Page eviction

Adds a function to mm/vmscan.c called swapout_pages that forces pages
out to swap.

3. MPOL_MF_MOVE flag for memory policies.

This implements MPOL_MF_MOVE in addition to MPOL_MF_STRICT. MPOL_MF_STRICT
allows the checking if all pages in a memory area obey the memory policies.
MPOL_MF_MOVE will evict all pages that do not conform to the memory policy.
The system will allocate pages conforming to the policy on swap in.

4. sys_migrate_pages system call and cpuset API

Adds a new function call

sys_migrate_pages(pid, maxnode, from_nodes, to_nodes)

to migrate pages of a process to a different node.

URLs referring to the discussion regarding the initial version of these
patches.

Page eviction: http://marc.theaimsgroup.com/?l=linux-mm&m=112922756730989&w=2
Numa policy  : http://marc.theaimsgroup.com/?l=linux-mm&m=112922756724715&w=2

Discussion of V2 of the patchset:
http://marc.theaimsgroup.com/?t=112959680300007&r=1&w=2

--
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>

             reply	other threads:[~2005-10-20 22:59 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-20 22:59 Christoph Lameter [this message]
2005-10-20 22:59 ` [PATCH 1/4] Swap migration V3: LRU operations Christoph Lameter
2005-10-21  6:06   ` Dave Hansen
2005-10-21  6:27     ` Magnus Damm
2005-10-21  6:56       ` Dave Hansen
2005-10-21  7:25         ` Magnus Damm
2005-10-21 15:42         ` Christoph Lameter
2005-10-21 11:49     ` Nikita Danilov
2005-10-20 22:59 ` [PATCH 2/4] Swap migration V3: Page Eviction Christoph Lameter
2005-10-22  1:06   ` Marcelo Tosatti
2005-10-20 22:59 ` [PATCH 3/4] Swap migration V3: MPOL_MF_MOVE interface Christoph Lameter
2005-10-20 22:59 ` [PATCH 4/4] Swap migration V3: sys_migrate_pages interface Christoph Lameter
2005-10-21  2:55   ` KAMEZAWA Hiroyuki
2005-10-21  7:07     ` Simon Derr
2005-10-21  7:20       ` KAMEZAWA Hiroyuki
2005-10-21  7:39         ` Simon Derr
2005-10-21  7:46           ` KAMEZAWA Hiroyuki
2005-10-21 15:22           ` Paul Jackson
2005-10-21 15:15         ` Paul Jackson
2005-10-21 15:21           ` Kamezawa Hiroyuki
2005-10-21 18:10             ` Paul Jackson
2005-10-21 18:26               ` Christoph Lameter
2005-10-21 18:57                 ` Paul Jackson
2005-10-21 15:47           ` Christoph Lameter
2005-10-21 16:18             ` Ray Bryant
2005-10-21 16:33               ` Christoph Lameter
2005-10-21 15:18         ` Paul Jackson
2005-10-21 16:27         ` Christoph Lameter
2005-10-21 16:59           ` Kamezawa Hiroyuki
2005-10-21 17:03           ` Paul Jackson
2005-10-21 17:06             ` Christoph Lameter
2005-10-21 18:17               ` Paul Jackson
2005-10-20 23:06 ` [PATCH 0/4] Swap migration V3: Overview Andrew Morton
2005-10-20 23:46   ` mike kravetz
2005-10-21  3:22     ` KAMEZAWA Hiroyuki
2005-10-21  3:32       ` mike kravetz
2005-10-21  3:56         ` KAMEZAWA Hiroyuki
2005-10-21  4:22           ` mike kravetz
2005-10-21  5:13             ` KAMEZAWA Hiroyuki
2005-10-21 15:28     ` Paul Jackson
2005-10-21 16:00       ` mike kravetz
2005-10-21  5:59   ` KAMEZAWA Hiroyuki
2005-10-22  1:16     ` Marcelo Tosatti
2005-10-21 15:54   ` Christoph Lameter
2005-10-21  1:57 ` Magnus Damm
2005-10-22  0:50   ` Marcelo Tosatti
2005-10-23 12:50     ` Magnus Damm
2005-10-24  7:44       ` Marcelo Tosatti
2005-10-25 11:37         ` Magnus Damm
2005-10-25 14:37           ` Marcelo Tosatti
2005-10-26  7:04             ` Magnus Damm
2005-10-27 15:01               ` Marcelo Tosatti
2005-10-27 20:43                 ` Andrew Morton
2005-10-27 21:35                   ` Marcelo Tosatti
2005-10-28  3:07                     ` Andrew Morton

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=20051020225935.19761.57434.sendpatchset@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=akpm@osdl.org \
    --cc=kravetz@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=magnus.damm@gmail.com \
    --cc=marcelo.tosatti@cyclades.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