Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pthread_nsg_get(3) [osf1 man page]

pthread_nsg_get(3)					     Library Functions Manual						pthread_nsg_get(3)

NAME
pthread_nsg_get - Gets the list of threads in a NUMA Scheduling Group (libpthread library) SYNOPSIS
#include <numa.h> int pthread_nsg_get( nsgid_t nsg, pthread_t *list, long size ); PARAMETERS
Specifies the NUMA Scheduling Group (NSG) from which to retrieve the list of threads. Specifies the address of the array of thread identi- fiers where the list of threads will be written. Specifies the size (in number of thread identifiers) of the array where the list of threads will be written. DESCRIPTION
The pthread_nsg_get() returns into the buffer pointed to by list an array of nsg_thread structures containing the process ids and thread indexes for all threads attached to the specified NSG. The list argument specifies the number of nsg_thread structures that the array must accommodate. To obtain the value for size, the application can first call pthread_nsg_get() with list set to null and read in the value of the nsg_nthread member in the nsgid_ds structure that the call returns. On the second call to pthread_nsg_get(), the application uses the nsg_nthread value for size and includes the appropriate value for list. RESTRICTIONS
The effective user ID of the calling process must be equal to the value of nsg_perm.cuid or nsg_perm.uid in the associated nsgid_ds struc- ture; or the calling process must have read permissions to the NSG. RETURN VALUES
Success. Failure. In this case, the returned integer indicates the type of error. Possible errors are as follows: The calling process does not have read permission on the NSG. The nsg argument does not specify a valid NSG identifier, or the nsg argument is not a valid address. ERRORS
None. SEE ALSO
Functions: nsg_attach_pid(3), nsg_get(3), numa_intro(3), pthread_nsg_attach(3) Files: numa_types(4) pthread_nsg_get(3)

Check Out this Related Man Page

numa_types(4)						     Kernel Interfaces Manual						     numa_types(4)

NAME
numa_types - Data types used by NUMA application interfaces SYNOPSIS
#include <numa_types.h> DESCRIPTION
This reference page lists and describes the data types, flags, structures, and unions that are defined in the <numa_types.h> header file to support the Compaq Tru64 Unix NUMA APIs. For all data types containing a radset_t or a cpuset_t, it is the programmer's responsibility to create the respective radset or cpuset for that structure via radsetcreate() or cpusetcreate(). Note that numa_types.h is indirectly included by the <numa.h> header file, which is the header file more frequently specified in the SYNOP- SIS sections of reference pages for NUMA-related functions. Definitions The <numa_types> header defines the following data types, flags, structures, and unions, and associated symbolic values: An opaque type that represents an I/O path between a device, represented by an (rsrctype_t, rsrcdescr_t) pair, and some other resource, also represented by an (rsrctype_t, rsrcdescr_t) pair. The second pair could represent a resource such as a Resource Affinity Domaim (RAD), memory, proces- sor, or process. A structure type that defines the policy and associated parameters for memory allocation. The memalloc_attr structures are associated with memory objects and with processes and threads. This structure contains the following members: The allocation policy that these attributes represent. The primary or preferred RAD (region) from which to allocate. The distance to overflow. The stride (in pages) for striped allocation. The page size in bytes. The overflow or stripe set for the allocation. An enumeration type that deter- mines, along with associated parameter attributes, how memory will be allocated for a memory object or a kernel memory allocation request. Supported policies are: Allocate pages from a specified (meaning preferred) RAD with overflow into a specified, possibly NULL, overflow RAD set. Equivalent to MPOL_DIRECTED but with the preferred RAD taken from the default policy of the thread context in which the memory allo- cation is being made. Allocate pages striped across a specified set of RADs by using a specified (page multiple) stripe. Starting with a specified RAD, pages will be allocated from RADs in the stripe set in increasing RAD number and will wrap from the highest numbered RAD in the set to the lowest. Replicate pages on the home RAD of the thread that caused the pages to be allocated. The following modifer may be combined (by using a logical OR operation) with the preceding policies: Disable automatic migration of pages by the system. A structure used by the nmadvise() function when its len parameter is negative, that describes the character- istics of an array of memory regions. This structure contains the following members: A pointer to the virtual address. The length of the address range in bytes. The primary or preferred RAD. Identifier for a NUMA Scheduling Group (NSG). A structure that describes the NUMA topology attributes. This structure contains the following members: The type of resource. The resource descrip- tor. The distance to the requested resource. Reference pages for specific functions provide more information. Various flags used by different routines. The reference pages for specific functions list and describe flag symbolic values. Identifier for a Resource Affinity Domain (RAD), which is a grouping of basic system resources. On some NUMA CC platforms, this resource grouping is known as a "Quad Building Block." The radid_t data type is a generic, integral type, for which there is the following symbolic value: No valid RAD ID. Functions return RAD_NONE when no RAD matches the specified criteria, there are no more RADs in a CPU set, and so forth. A set of RADs. This type is used to specify a set of radid_t values to NUMA and partitioning APIs. A subset of these APIs perform operations on a set of RADs and manage radset_t as an opaque type. A opaque type used in enumeration/iteration operations on a RAD set. This type stores the current cursor position during a scan of the members in a RAD set. A structure that describes the state and resources associ- ated with a RAD. This structure contains the following members: The RAD revision number. The RAD identifier. The RAD state. The maximum number of RADs on the system. The amount of physical memory present in the RAD. The current amount of free memory avail- able in the RAD. The set of CPUs associated with the RAD. A RAD's software state. The defined states are: The specified RAD exists and is on-line. Processes and threads may be assigned to and memory allocated to the RAD. The specified RAD exists but is not cur- rently on line. No processes or threads may be assigned to nor memory allocated to this RAD; however, its resource complement may be queried. The specified RAD does not exist in the system. No further information is available. An enumeration type that speci- fies the kind of resource with which affinity is desired. Anrsrctype_t argument is used in APIs that perform NUMA topology queries and resource binding. The following symbolic values identify the type of resource: A RAD set. A file or device referenced by an open file descriptor. A file or device specified by a pathname. A System V shared memory segment that is referenced by a shared memory ID. A process that is referenced by a pid_t identifier. A physical memory mapped region that is referenced by a process virtual address. This type is used to locate RADs within a specified distance from a particular memory location. See nloc(3) for more information. A NUMA Scheduling Group that is referenced by an nsgid_t identifier. A union of the various resource handles that are represented by a resource type (rsrctype_t). Along with rsrctype_t, rsrcdescr_t is specified to the NUMA APIs that perform NUMA topology queries and resource binding. An rsrcdescr_t union contains the following members: A set of RADs when resource type is R_RAD. A file descriptor when resource type is R_FILDES. A pathname of a file or device when resource type is R_PATH. A System V shared memory ID when resource type is R_SHM. A process ID when resource type is R_PID. A process virtual memory address when resource type is R_MEM. A NUMA Scheduling Group ID when resource type is R_NSG. A structure that specifies the access permissions and associated parameters and statistics for a NUMA Scheduling Group (NSG). This structure contains the following members: A subor- dinate structure that contains the NSG access permissions. The number of processes attached to the NSG. A structure that specifies a thread (process ID and thread ID) attached to an NSG. This structure contains the following members: The process ID of a thread that is attached to an NSG. The thread ID (index) of a thread that is attached to an NSG. SEE ALSO
Functions: nloc(3), numa_intro(3) numa_types(4)
Man Page