migratepages — Migrate the physical location a processes pages


migratepages pid from-nodes to-nodes


migratepages moves the physical location of a processes pages without any changes of the virtual address space of the process. Moving the pages allows one to change the distances of a process to its memory. Performance may be optimized by moving a processes pages to the node where it is executing.

If multiple nodes are specified for from-nodes or to-nodes then an attempt is made to preserve the relative location of each page in each nodeset.

For example if we move from nodes 2-5 to 7,9,12-13 then the preferred mode of operation is to move pages from 2->7, 3->9, 4->12 and 5->13. However, this is only posssible if enough memory is available.

Valid node specifiers
all All nodes
number Node number
number1{,number2} Node number1 and Node number2
number1-number2 Nodes from number1 to number2
! nodes Invert selection of the following specification.


Requires an NUMA policy aware kernel with support for page migration (linux 2.6.16 and later).

migratepages will only move pages that are not shared with other processes if called by a user without administrative priviledges (but with the right to modify the process).

migratepages will move all pages if invoked from root (or a user with administrative priviledges).


/proc/<pid>/numa_maps for information about the NUMA memory use of a process.

See Also

numactl(8) , set_mempolicy(2) , get_mempolicy(2) , mbind(2) , sched_setaffinity(2) , sched_getaffinity(2) , proc(5) , ftok(3) , shmat(2) , taskset(1)

Referenced By

cpuset(7), migrate_pages(2), move_pages(2), numactl(8).

Jan 2005 SGI Linux Administrator's Manual