memalloc_attr man page on DigitalUNIX

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

memalloc_attr(3)					      memalloc_attr(3)

NAME
       memalloc_attr - Query the memory allocation policy and attributes (lib‐
       numa library)

SYNOPSIS
       #include <numa.h>

       int memalloc_attr(
	       vm_offset_t va, memalloc_attr_t *attr );

PARAMETERS
       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
       The memalloc_attr() function returns the current memory allocation pol‐
       icy  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
       #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
       Success. In this case, the function stores the requested memory alloca‐
       tion policy and attributes in the buffer pointed to by attr. If no mem‐
       ory  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
       If the memalloc_attr() function fails, it sets errno to one of the fol‐
       lowing  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 radsetcre‐
       ate() call.

SEE ALSO
       Functions: numa_intro(3)

       Files: numa_types(4)

							      memalloc_attr(3)
[top]

List of man pages available for DigitalUNIX

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