Re: What is migrate memory pages?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Found more info:

At:

Documentation/vm/page_migration:

Page migration allows the moving of the physical location of pages between
nodes in a numa system while the process is running. This means that the
virtual addresses that the process sees do not change. However, the
system rearranges the physical location of those pages.

The main intend of page migration is to reduce the latency of memory access
by moving pages near to the processor where the process accessing that memory
is running.

Page migration allows a process to manually relocate the node on which its
pages are located through the MF_MOVE and MF_MOVE_ALL options while setting
a new memory policy via mbind(). The pages of process can also be relocated
from another process using the sys_migrate_pages() function call. The
migrate_pages function call takes two sets of nodes and moves pages of a
process that are located on the from nodes to the destination nodes.
Page migration functions are provided by the numactl package by Andi Kleen
(a version later than 0.9.3 is required. Get it from
ftp://ftp.suse.com/pub/people/ak). numactl provided libnuma which
provides an interface similar to other numa functionality for page migration.
cat /proc/<pid>/numa_maps allows an easy review of where the pages of
a process are located. See also the numa_maps manpage in the numactl package.

Interesting.....so this is the why part.....and for the how part?   In
cpuset filesystem memory migration can be configured:

http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=linux&db=man&fname=/usr/share/catman/man4/cpuset.4.html

The cpuset filesystem, /dev/cpuset, is explained in detail in above
link.   To quote:

Memory Migration
       Normally, under the default setting (disabled) of memory_migrate,  once
       a  page  is  allocated (given a physical page of main memory) then that
       page stays on whatever node it was allocated, so  long  as  it  remains
       allocated,  even  if  the  cpusets  memory placement policy mems subse-
       quently changes.

       When memory migration is enabled in a cpuset, if the  mems  setting  of
       the  cpuset  is changed, then any memory page in use by any task in the
       the page was on the second valid node of the  prior  cpuset,  then  the
       page will be placed on the second valid node of the new cpuset, if pos-
       sible.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux