PSET_CREATE(2) | System Calls | PSET_CREATE(2) |
pset_create, pset_destroy, pset_assign - manage sets of processors
#include <sys/pset.h> int pset_create(psetid_t *newpset);
int pset_destroy(psetid_t pset);
int pset_assign(psetid_t pset, processorid_t cpu, psetid_t *opset);
These functions control the creation and management of sets of processors. Processor sets allow a subset of the system's processors to be set aside for exclusive use by specified LWPs and processes. The binding of LWPs and processes to processor sets is controlled by pset_bind(2).
The pset_create() function creates an empty processor set that contains no processors. On successful return, newpset will contain the ID of the new processor set.
The pset_destroy() function destroys the processor set pset, releasing its constituent processors and processes. If pset is PS_MYID, the processor set to which the caller is bound is destroyed.
The pset_assign() function assigns the processor cpu to the processor set pset. A processor that has been assigned to a processor set will run only LWPs and processes that have been explicitly bound to that processor set, unless another LWP requires a resource that is only available on that processor.
On successful return, if opset is non-null, opset will contain the processor set ID of the former processor set of the processor.
If pset is PS_NONE, pset_assign() releases processor cpu from its current processor set.
If pset is PS_QUERY, pset_assign() makes no change to processor sets, but returns the current processor set ID of processor cpu in opset.
If pset is PS_MYID, processor cpu is assigned to the processor set to which the caller belongs. If the caller does not belong to a processor set, processor cpu is released from its current processor set.
These functions are restricted to privileged processes, except for pset_assign() when pset is PS_QUERY.
Upon successful completion, these functions return 0. Otherwise, −1 is returned and errno is set to indicate the error.
These functions will fail if:
EBUSY
EFAULT
EINVAL
ENOMEM
ENOTSUP
EPERM
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
MT-Level | Async-Signal-Safe |
p_online(2), processor_bind(2), pset_bind(2), pset_info(2), pset_getloadavg(3C), pool_set_status(3POOL), attributes(7), privileges(7), pooladm(8), psradm(8), psrinfo(8), psrset(8)
The processor set type of PS_SYSTEM is no longer supported.
Processors with LWPs bound to them using processor_bind(2) cannot be assigned to a new processor set. If this is attempted, pset_assign() will fail and set errno to EBUSY.
February 22, 2008 | OmniOS |