pthread_getaffinity_np, pthread_setaffinity_np(3) | manage CPU affinity |
pthread_affinity_np, pthread_getaffinity_np, pthread_setaffinity_np(3) | manage CPU affinity |
pthread_setaffinity_np, pthread_getaffinity_np(3) | manage CPU affinity |
PTHREAD_AFFINITY_NP(3) | MidnightBSD Library Functions Manual | PTHREAD_AFFINITY_NP(3) |
pthread_getaffinity_np
,
pthread_setaffinity_np
—
manage CPU affinity
POSIX Threads Library (libpthread, -lpthread)
#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);
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.
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.
The pthread_getaffinity_np
() and
pthread_setaffinity_np
() functions may fail if:
EDEADLK
]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
]ESRCH
]ERANGE
]EPERM
]cpuset(1), cpuset(2), cpuset_getid(2), cpuset_setid(2), pthread(3), pthread_attr_getaffinity_np(3), pthread_attr_setaffinity_np(3)
The pthread_getaffinity_np
and
pthread_setaffinity_np
functions are non-standard
FreeBSD extensions and may be not available on other
operating systems.
The pthread_getaffinity_np
and
pthread_setaffinity_np
function first appeared in
FreeBSD 7.2.
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>.
March 23, 2010 | midnightbsd-3.1 |