Quick ?s
Cheat Sheets
Man Pages
The Lynx
Software
GET_MEMPOLICY(2)	   Linux Programmers Manual	     GET_MEMPOLICY(2)



NAME
       get_mempolicy - Retrieve NUMA memory policy for a process

SYNOPSIS
       #include 

       int get_mempolicy(int *mode, unsigned long *nodemask,
			 unsigned long maxnode, unsigned long addr,
			 unsigned long flags);

       Link with -lnuma

DESCRIPTION
       get_mempolicy()	retrieves the NUMA policy of the calling process or of
       a memory address, depending on the setting of flags.

       A NUMA machine has different memory  controllers  with  different  dis
       tances  to  specific  CPUs.   The memory policy defines from which node
       memory is allocated for the process.

       If flags is specified as 0, then information  about  the  calling  pro
       cesss default policy (as set by set_mempolicy(2)) is returned.

       If  flags specifies MPOL_F_ADDR, then information is returned about the
       policy governing the memory address given in addr.  This policy may  be
       different  from	the processs default policy if mbind(2) or one of the
       helper functions described in numa(3) has been used to establish a pol
       icy for the memory range containing addr.

       If  the	mode argument is not NULL, then get_mempolicy() will store the
       policy mode of the requested NUMA policy in the location pointed to  by
       this  argument.	 If nodemask is not NULL, then the nodemask associated
       with the policy will be stored in the location pointed to by this argu
       ment.  maxnode specifies the number of node IDs that can be stored into
       nodemaskthat is, the maximum node ID plus one.  The value specified by
       maxnode is always rounded to a multiple of sizeof(unsigned long).

       If  flags  specifies  both MPOL_F_NODE and MPOL_F_ADDR, get_mempolicy()
       will return the node ID of the node on which the address addr is  allo
       cated  into  the  location pointed to by mode.  If no page has yet been
       allocated for the specified address, get_mempolicy()  will  allocate  a
       page  as  if  the  process  had	performed a read [load] access to that
       address, and return the ID of the node where that page was allocated.

       If flags specifies MPOL_F_NODE, but not MPOL_F_ADDR, and the  processs
       current	policy is MPOL_INTERLEAVE, then get_mempolicy() will return in
       the location pointed to by a non-NULL mode argument, the node ID of the
       next  node  that will be used for interleaving of internal kernel pages
       allocated on behalf of the process.  These  allocations	include  pages
       for  memory  mapped  files  in  process	memory ranges mapped using the
       mmap(2) call with the MAP_PRIVATE flag for read accesses, and in memory
       ranges mapped with the MAP_SHARED flag for all accesses.

       Other flag values are reserved.

       For an overview of the possible policies see set_mempolicy(2).

RETURN VALUE
       On  success,  get_mempolicy()  returns  0; on error, -1 is returned and
       errno is set to indicate the error.

ERRORS
       EFAULT Part of all of the memory range specified by nodemask and  maxn
	      ode points outside your accessible address space.

       EINVAL The  value  specified by maxnode is less than the number of node
	      IDs supported by the system.  Or flags  specified  values  other
	      than  MPOL_F_NODE or MPOL_F_ADDR; or flags specified MPOL_F_ADDR
	      and addr is NULL, or flags did not specify MPOL_F_ADDR and  addr
	      is   not	 NULL.	  Or,  flags  specified  MPOL_F_NODE  but  not
	      MPOL_F_ADDR and the current process policy  is  not  MPOL_INTER
	      LEAVE.  (And there are other EINVAL cases.)

CONFORMING TO
       This system call is Linux-specific.

NOTES
       If  the	mode of the process policy or the policy governing allocations
       at  the	specified  address  is	MPOL_PREFERRED	and  this  policy  was
       installed  with an empty nodemaskspecifying local allocation, get_mem
       policy() will return the mask of  on-line  node	IDs  in  the  location
       pointed	to  by	a non-NULL nodemask argument.  This mask does not take
       into consideration any administratively	imposed  restrictions  on  the
       processs context.

   Versions and Library Support
       See mbind(2).

SEE ALSO
       getcpu(2), mbind(2), mmap(2), set_mempolicy(2), numa(3), numactl(8)

COLOPHON
       This  page  is  part of release 3.05 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.



Linux				  2007-08-27		      GET_MEMPOLICY(2)




Yals.net is © 1999-2009 Crescendo Communications
Sharing tech info on the web for more than a decade!
This page was generated Thu Apr 30 17:05:23 2009