move_pages man page on CentOS

Man page or keyword search:  
man Server   8420 pages
apropos Keyword Search (all sections)
Output format
CentOS logo
[printable version]

MOVE_PAGES(2)		      Linux System Calls		 MOVE_PAGES(2)

NAME
       move_pages - move a set of pages of a process to a different NUMA node

SYNOPSIS
       #include <syscall.h>
       long move_pages(pid_t pid, unsigned long nr_pages,
		       const void **address,
		       const int *nodes, int *status,
		       int flags);

DESCRIPTION
       move_pages  moves  a  set  of  pages in the address space of a executed
       process to a different NUMA node.  The function can  also  be  used  to
       determine the nodes to which the pages are currently mapped.

       pid  is	the  process whose pages will be moved.	 The value 0 specifies
       the current process.

       The argument nr_pages specifies the number of pages which would require
       moving.

       addresses is an array of addresses of pages which would require moving

       nodes  is  an array of numbers of nodes to move the corresponding pages
       to.  If set to NULL, status is filled with current NUMA node  IDs,  but
       no migrations occur.

       The flags argument describes the type of pages which will be moved:

       MPOL_MF_MOVE
	      Syscall  will  move  only	 pages	which  are  mapped only by the
	      process pid.

       MPOL_MF_MOVE_ALL
	      Syscall will move pages which are mapped by  multiple  processes
	      too (this mode needs to have sufficient permissions).

       The  status  field  is  only valid if move_pages finished successfully.
       This field contains the status of the specified pages.	If  the	 nodes
       argument	 is NULL or the migration succeeded, it is set to the node ID.
       Otherwise it contains a negative number, one  of	 the  following	 error
       codes:

       -EFAULT the specified address does not point to a valid mapping

       -ENOENT the page does not exist

       -EPERM the page can't be moved (it is mlocked)

       -EACCES	the  page  is  shared  by  multiple  processes	and  the  flag
       MPOL_MF_MOVE_ALL was not set

       -EBUSY the page could not be moved - it is busy now

       -EFAULT the page address is not valid

       -ENOMEM insufficient memory

       -EIO the page can't be written

       -EINVAL the page can't be moved because the file system does not imple‐
       ment the necessary interface

RETURN VALUE
       If  nodes is not NULL, move_pages returns the number of valid migration
       requests which could not currently be performed.	 Otherwise it  returns
       0.

       An error indication is returned on error.

ERRORS
       EACCES  one of the nodes specified by the nodes argument is not allowed
       for the specified process.

       EINVAL the man pages to be moved are  in	 kernel	 thread	 or  the  flag
       parameter is invalid.

       ENODEV  one  of the nodes specified by the nodes argument is not avail‐
       able.

       ENOENT there is no page which would be moved.

       EPERM the flag is set to MPOL_MF_MOVE_ALL or pid	 doesn't  specify  the
       current process, and the process has insufficient privileges.

       ENOMEM insufficient memory

       E2BIG the number of pages to move is too big

       ESRCH the process pid can't be found

AVAILABILITY
       This  syscall  is  implemented only on the i386 and IA-64 architectures
       since kernel 2.6.

Linux				 8 August 2006			 MOVE_PAGES(2)
[top]

List of man pages available for CentOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net