 |
Index for Section 3 |
|
 |
Alphabetical listing for P |
|
 |
Bottom of page |
|
pthread_rad_attach(3)
NAME
pthread_rad_attach, pthread_rad_bind - Attaches or binds a thread to a NUMA
Resource Affinity Domain (libpthread library)
SYNOPSIS
#include <numa.h>
int pthread_rad_attach(
pthread_t thread,
radset_t radset,
ulong_t flags );
int pthread_rad_bind(
pthread_t thread,
radset_t radset,
ulong_t flags );
PARAMETERS
thread
Identifies the thread to be attached or bound to the specified set of
Resource Affinity Domains (RADs).
radset
Identifies the RAD set to which the thread is to be attached or bound.
DESCRIPTION
The pthread_rad_attach() function attaches the thread specified by the
thread argument to the RAD set specified by the radset argument.
The pthread_rad_bind() function binds the specified thread to the specified
RAD set.
While both functions assign a home RAD for the thread, an attach operation
allows remote execution on other RADs while a bind operation restricts
execution to the home RAD. In the following paragraphs, the term "assign"
is used when the description refers equally to both the attach and the bind
operations.
The home RAD for the thread will be selected by the system scheduler from
among the RADs included in radset based on current system load balance and
the flags argument. The overflow set (mattr_radset) for the thread will be
set to radset.
The following symbolic values are defined for the flags argument:
RAD_INSIST
The requested assignments are mandatory. If this option is not set, the
system will consider the request to be a "hint" and may take no action
for the specified thread.
RAD_SMALLMEM
The thread has small memory requirements, so the system should (for the
home RAD) favor those RADs with light CPU loads, independent of their
available memory.
RAD_LARGEMEM
The thread has large memory requirements, so the system should (for the
home RAD) favor those RADs with more available memory, independent of
their CPU loads.
If the caller does not have partition administration privilege and if the
radset argument contains RADs that are not in the caller's partition, an
error will be returned.
NOTES
The value for the radset argument could be obtained from an nloc() call to
assign or migrate the process to a RAD close (or closer) to a particular
resource. When obtained in this manner, the radset value will identify RADs
that were in the caller's partition at the time of the nloc() call. The
partition configuration could change between the call to nloc() and a
subsequent call to pthread_rad_attach(), resulting in an error. An
application should be prepared to handle this error, even though it should
not be a frequent occurrence.
RETURN VALUES
0 Success.
Integer value
Failure. In this case, the integer value indicates the type of
error. Possible errors are as follows:
[EBUSY]
The thread is hard attached (RAD_INSIST) to RADs or has memory
wired (locked) on its current RAD such that it cannot be
migrated to the specified RAD set.
[EINVAL]
One of more of the RADs in the radset argument or options in
the flags argument are invalid.
[ENOMEM]
RAD_INSIST and RAD_MIGRATE were specified, and the thread
cannot be migrated because insufficient memory exists on RADs
in the specified RAD set.
[EPERM]
The caller does not have appropriate privileges to assign
threads to RADs in the specified RAD set.
[ESRCH]
The thread specified by thread does not exist.
ERRORS
None.
SEE ALSO
Functions: nloc(3), pthread_rad_detach(3)
 |
Index for Section 3 |
|
 |
Alphabetical listing for P |
|
 |
Top of page |
|