*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> memalloc_attr (3)              
Title
Content
Arch
Section
 

memalloc_attr(3)

Contents


NAME    [Toc]    [Back]

       memalloc_attr  -  Query  the  memory allocation policy and
       attributes (libnuma library)

SYNOPSIS    [Toc]    [Back]

       #include <numa.h>

       int memalloc_attr(
               vm_offset_t va, memalloc_attr_t *attr );

PARAMETERS    [Toc]    [Back]

       The user virtual address for which the  memory  allocation
       policy  is  requested.   Points to a buffer to receive the
       memory allocation policy and attributes for the page  containing
 the specified virtual address.

DESCRIPTION    [Toc]    [Back]

       The  memalloc_attr()  function  returns the current memory
       allocation policy and associated attributes in the  buffer
       pointed to by attr for the address specified by va.

       If  radset  information about the memory allocation policy
       is desired, a radset must be allocated  through  the  radsetcreate()
  function, and the mattr_radset element of the
       attr argument must point to that radset.  Otherwise,  a  0
       must be specified for the mattr_radset.

EXAMPLE    [Toc]    [Back]

       #include <numa.h> main() {
           vm_offset_t va;
           memalloc_attr_t attr;
           int id;
           int flags = SET_CURSOR_CONSUME;
           rad_cursor_t cursor = SET_CURSOR_INIT;
           radsetcreate(&attr.mattr_radset);
           va = (vm_offset_t)&attr;

           /* no policy in effect - return zeroes */
           if (memalloc_attr(va, &attr) == -1) {
               perror("memalloc_attr");
               radsetdestroy(&attr.mattr_radset); return 0;
           }
           printf("mattr_policy = 0x%lx\n", attr.mattr_policy);
           printf("mattr_rad = 0x%lx\n", attr.mattr_rad);
           printf("mattr_stride = 0x%lx\n", attr.mattr_stride);
           printf("mattr_distance   =  0x%lx\n",  attr.mattr_distance);

           printf("mattr_pagesz = 0x%lx\n\n", attr.mattr_pagesz);

           /* set policy */
           attr.mattr_policy = MPOL_DIRECTED;
           attr.mattr_rad = 0;
           if  (nmadvise((void  *)va, sizeof(memalloc_attr_t), 0,
       &attr) == -1)  {
               perror("nmadvise");
               radsetdestroy(&attr.mattr_radset); return 0;
           }

           if (memalloc_attr(va, &attr) == -1) {
               perror("memalloc_attr");
               radsetdestroy(&attr.mattr_radset);
               return 0;
           }
           printf("mattr_policy = 0x%lx\n", attr.mattr_policy);
           printf("mattr_rad = 0x%lx\n", attr.mattr_rad);
           printf("mattr_stride = 0x%lx\n", attr.mattr_stride);
           printf("mattr_distance  =  0x%lx\n",   attr.mattr_distance);

           printf("mattr_pagesz = 0x%lx\n", attr.mattr_pagesz);

           /* enumerate the mattr_radset */
           printf("\nEnumerating radset members:\n");
           while  ((id  =  rad_foreach(attr.mattr_radset,  flags,
       &cursor)) != RAD_NONE) {
               if ((id % 8) == 0)
                   printf("\n");
           printf("%3d, ", id);
           }
           printf("\n"); }


RETURN VALUES    [Toc]    [Back]

       Success. In this case, the function stores  the  requested
       memory  allocation  policy  and  attributes  in the buffer
       pointed to by attr. If no  memory  allocation  policy  has
       been  set  for  the  specified virtual address (e.g., madvise()
 or nmadvise()) not  called  for  that  address),  a
       zeroed attr structure is returned.  Failure. In this case,
       the function sets errno to indicate the error.

ERRORS    [Toc]    [Back]

       If the memalloc_attr() function fails, it  sets  errno  to
       one of the following values: The address pointed to by va,
       attr, or mattr_radset is invalid.  The  mattr_radset  element
  of  the  attr argument points to an invalid RAD set,
       possibly one that has not been created by a radsetcreate()
       call.

SEE ALSO    [Toc]    [Back]

      
      
       Functions: numa_intro(3)

       Files: numa_types(4)



                                                 memalloc_attr(3)
[ Back ]
 Similar pages
Name OS Title
nsg_get Tru64 Query status of a NUMA Scheduling Group (libnuma library)
malloc_cv IRIX WorkShop memory allocation library
malloc_ss IRIX SpeedShop memory allocation library
malloc IRIX WorkShop memory allocation library
mdFree IRIX control memory allocation for the MIDI library
nshmget Tru64 Returns (or creates) the ID for a shared memory region (libnuma library)
pthread_attr_setschedpolicy IRIX manage scheduling policy attributes
pthread_attr_setschedpolicy Tru64 Changes the scheduling policy attribute of the specified thread attributes object
rad_get_num Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
rad_get_physmem Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service