PTHREAD_ATTR_AFFINITY... BSD Library Functions Manual PTHREAD_ATTR_AFFINITY...NAME
pthread_attr_getaffinity_np, pthread_attr_setaffinity_np — manage CPU
affinity in thread attribute objects
LIBRARY
POSIX Threads Library (libpthread, -lpthread)
SYNOPSIS
#include <pthread_np.h>
int
pthread_attr_getaffinity_np(const pthread_attr_t *pattr,
size_t cpusetsize, cpuset_t *cpusetp);
int
pthread_attr_setaffinity_np(pthread_attr_t *pattr, size_t cpusetsize,
const cpuset_t *cpusetp);
DESCRIPTION
The pthread_attr_getaffinity_np() and pthread_attr_setaffinity_np() func‐
tions allow the manipulation of sets of CPUs available to the specified
thread attribute object.
Masks of type cpuset_t are composed using the CPU_SET(3) macros. The
kernel tolerates large sets as long as all CPUs specified in the set
exist. Sets smaller than the kernel uses generate an error on calls to
pthread_attr_getaffinity_np() even if the result set would fit within the
user supplied set. Calls to pthread_attr_setaffinity_np() tolerate small
sets with no restrictions.
The supplied mask should have a size of cpusetsize bytes. This size is
usually provided by calling sizeof(cpuset_t) which is ultimately deter‐
mined by the value of CPU_SETSIZE as defined in <sys/cpuset.h>.
pthread_attr_getaffinity_np() retrieves the mask from the thread
attribute object specified by pattr, and stores it in the space provided
by cpusetp.
pthread_attr_setaffinity_np() sets the mask for the thread attribute
object specified by pattr to the value in cpusetp.
RETURN VALUES
If successful, the pthread_attr_getaffinity_np() and
pthread_attr_setaffinity_np() functions will return zero. Otherwise an
error number will be returned to indicate the error.
ERRORS
The pthread_attr_getaffinity_np() and pthread_attr_setaffinity_np() func‐
tions will fail if:
[EINVAL] The pattr or the attribute specified by it is NULL.
The pthread_attr_setaffinity_np() function will fail if:
[EINVAL] The pattr or the attribute specified by it is NULL.
[ENOMEM] Insufficient memory exists to store the cpuset mask.
SEE ALSOcpuset(1), cpuset(2), cpuset_getid(2), cpuset_setid(2), CPU_SET(3),
pthread_get_affinity_np(3), pthread_set_affinity_np(3)STANDARDS
The pthread_attr_getaffinity_np and pthread_attr_setaffinity_np functions
are non-standard FreeBSD extensions and may be not available on other
operating systems.
HISTORY
The pthread_attr_getaffinity_np and pthread_attr_setaffinity_np functions
first appeared in FreeBSD 7.2.
AUTHORS
The pthread_attr_getaffinity_np and pthread_attr_setaffinity_np functions
were written by David Xu ⟨davidxu@FreeBSD.org⟩, and this manpage was
written by Xin LI ⟨delphij@FreeBSD.org⟩.
BSD January 8, 2010 BSD