System Calls psetcreate(2)
NAME
psetcreate, psetdestroy, psetassign - manage sets of pro-
cessors
SYNOPSIS
#include
int psetcreate(psetidt *newpset);
int psetdestroy(psetidt pset);
int psetassign(psetidt pset, processoridt cpu, psetidt *opset);
DESCRIPTION
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 psetbind(2).
The psetcreate() function creates an empty processor set
that contains no processors. On successful return, newpset
will contain the ID of the new processor set.
The psetdestroy() function destroys the processor set pset,
releasing its constituent processors and processes. If pset
is PSMYID, the processor set to which the caller is bound
is destroyed.
The psetassign() 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 pro-
cessor.
On successful return, if opset is non-null, opset will con-
tain the processor set ID of the former processor set of the
processor.
If pset is PSNONE, psetassign() releases processor cpu
from its current processor set.
SunOS 5.11 Last change: 22 Feb 2008 1
System Calls psetcreate(2)
If pset is PSQUERY, psetassign() makes no change to pro-
cessor sets, but returns the current processor set ID of
processor cpu in opset.
If pset is PSMYID, processor cpu is assigned to the proces-
sor 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 psetassign() when pset is PSQUERY.
RETURN VALUES
Upon successful completion, these functions return 0. Other-
wise, -1 is returned and errno is set to indicate the error.
ERORS
These functions will fail if:
EBUSY The processor could not be moved to the specified
processor set.
EFAULT The location pointed to by newpset was not writ-
able by the user, or the location pointed to by
opset was not NUL and not writable by the user.
EINVAL The specified processor does not exist, the
specified processor is not on-line, or an
invalid processor set was specified.
ENOMEM There was insufficient space for psetcreate to
create a new processor set.
ENOTSUP The pools facility is active. See pooladm(1M) and
poolsetstatus(3POL) for information about ena-
bling and disabling the pools facility.
EPERM The {PRIVSYSRESCONFIG} privilege is not
asserted in the effective set of the calling pro-
cess.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 22 Feb 2008 2
System Calls psetcreate(2)
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Committed
MT-Level Async-Signal-Safe
SEE ALSO
pooladm(1M), psradm(1M), psrinfo(1M), psrset(1M),
ponline(2), processorbind(2), psetbind(2), psetinfo(2),
poolsetstatus(3POL), psetgetloadavg(3C), attributes(5),
privileges(5)
NOTES
The processor set type of PSYSTEM is no longer supported.
Processors with LWPs bound to them using processorbind(2)
cannot be assigned to a new processor set. If this is
attempted, psetassign() will fail and set errno to EBUSY.
SunOS 5.11 Last change: 22 Feb 2008 3
|