MIGRATE_PAGES(2) Linux Programmer's Manual MIGRATE_PAGES(2)NAME
migrate_pages, move_pages - move memory pages on a numa system
SYNOPSIS
int migrate_pages(pid_t pid, unsigned long maxnode, const unsigned long *from, const unsigned long *to);
long move_pages(pid_t pid, unsigned long nr_pages, const void **pages, const int *nodes, int *status, int flags);
DESCRIPTION
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. How‐
ever, 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 access‐
ing that memory is running. pid gives the process id of the process
for which to migrate pages. If pid is 0, the caller's PID is used. The
calling process must run under the same user id as the one given in pid
or the caller must have administrative capabilities or superuser privi‐
leges.
RETURN VALUE
On success migrate_pages() returns the number of pages that could not
be moved.
ERRORS-ESRCH If the process given in pid could not be found.
-EINVAL
If the given pid is invalid or if maxnode is too high (greater
than or equal to PAGE_SIZE*BITS_PER_BYTE).
-EPERM If the caller is not allowed to migrate pages for the process
given in pid (not the same user and doesn't have CAP_SYS_NICE).
-EFAULT
On errors copying from user space.
SEE ALSO
mbind (2), numa (3), /usr/src/linux/Documentation/vm/page_migration
Linux 2.6.17 OCTOBER 2006 MIGRATE_PAGES(2)