Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pthread_setaffinity_np(3) [freebsd man page]

PTHREAD_AFFINITY_NP(3)					   BSD Library Functions Manual 				    PTHREAD_AFFINITY_NP(3)

NAME
pthread_getaffinity_np, pthread_setaffinity_np -- manage CPU affinity LIBRARY
POSIX Threads Library (libpthread, -lpthread) SYNOPSIS
#include <pthread_np.h> int pthread_getaffinity_np(pthread_t td, size_t cpusetsize, cpuset_t *cpusetp); int pthread_setaffinity_np(pthread_t td, size_t cpusetsize, const cpuset_t *cpusetp); DESCRIPTION
pthread_getaffinity_np() and pthread_setaffinity_np() allow the manipulation of sets of CPUs available to the specified thread. Masks of type cpuset_t are composed using the CPU_SET 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_getaffinity_np() even if the result set would fit within the user supplied set. Calls to pthread_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 determined by the value of CPU_SETSIZE as defined in <sys/cpuset.h>. pthread_getaffinity_np() retrieves the mask from the thread specified by td, and stores it in the space provided by cpusetp. pthread_setaffinity_np() attempts to set the mask for the thread specified by td to the value in cpusetp. RETURN VALUES
If successful, the pthread_getaffinity_np() and pthread_setaffinity_np() functions will return zero. Otherwise an error number will be returned to indicate the error. ERRORS
The pthread_getaffinity_np() and pthread_setaffinity_np() functions may fail if: [EDEADLK] The pthread_setaffinity_np() call would leave a thread without a valid CPU to run on because the set does not overlap with the thread's anonymous mask. [EFAULT] The cpusetp pointer passed was invalid. [ESRCH] The thread specified by the td argument could not be found. [ERANGE] The cpusetsize was either preposterously large or smaller than the kernel set size. [EPERM] The calling thread did not have the credentials required to complete the operation. SEE ALSO
cpuset(1), cpuset(2), cpuset_getid(2), cpuset_setid(2), pthread(3), pthread_attr_getaffinity_np(3), pthread_attr_setaffinity_np(3) STANDARDS
The pthread_getaffinity_np and pthread_setaffinity_np functions are non-standard FreeBSD extensions and may be not available on other operat- ing systems. HISTORY
The pthread_getaffinity_np and pthread_setaffinity_np function first appeared in FreeBSD 7.2. AUTHORS
The pthread_getaffinity_np and pthread_setaffinity_np functions were written by David Xu <davidxu@FreeBSD.org>, and this manpage was written by Xin LI <delphij@FreeBSD.org>. BSD
March 23, 2010 BSD

Check Out this Related Man Page

PTHREAD_ATTR_AFFINITY_NP(3)				   BSD Library Functions Manual 			       PTHREAD_ATTR_AFFINITY_NP(3)

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() functions allow the manipulation of sets of CPUs available to the speci- fied thread attribute object. Masks of type cpuset_t are composed using the CPU_SET 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 determined 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() functions will fail if: [EINVAL] The pattr or the attribute specified by it is NULL. [ERANGE] The cpusetsize is too small. The pthread_attr_setaffinity_np() function will fail if: [EINVAL] The pattr or the attribute specified by it is NULL. [EINVAL] The cpusetp specified a CPU that was outside the set supported by the kernel. [ERANGE] The cpusetsize is too small. [ENOMEM] Insufficient memory exists to store the cpuset mask. SEE ALSO
cpuset(1), cpuset(2), cpuset_getid(2), cpuset_setid(2), 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
Man Page