NAME
pset_destroy — destroy a processor set
SYNOPSIS
#include <sys/pset.h>
int pset_destroy(
psetid_t pset);
DESCRIPTION
The
pset_destroy()
function destroys the processor set
pset,
releasing all constituent processors and processes by default.
The processors and processes are reassigned to the system default
processor set. Once destroyed, the
pset
identifier becomes available
for new processor sets that may be created in the future.
The behavior when attempting to destroy a non-empty processor set may
be controlled by changing the
PSET_ATTR_NONEMPTY
attribute of the processor set through the
pset_setattr()
function. See
pset_getattr(2).
The following values are supported for the
PSET_ATTR_NONEMPTY
attribute:
- PSET_ATTRVAL_DFLTPSET
Reassign all processors in the
pset
to the system default processor set. Migrate all threads
and processes bound to the
pset
to the system default processor set.
- PSET_ATTRVAL_FAIL
Make the request fail with EBUSY if there are any
threads or processes bound to
pset
or
if there are processors assigned to the
pset.
- PSET_ATTRVAL_FAILBUSY
Make the request fail with EBUSY only if there are
active threads or processes bound to the processor set.
Otherwise, perform the operation by reassigning the
processors in the pset to the system default processor set.
If the threads and processes being reassigned to the default processor
set have some binding to a processor or a locality domain in the
pset
being destroyed,
their binding is reassigned to a processor or a locality domain in the system
default processor set.
A superuser, a PRIV_PSET privilege user, or a user with WRITE permission on the
pset
may destroy the processor set
pset.
The system default processor set
PS_DEFAULT
may never be destroyed.
EXAMPLE
Destroy a processor set with the processor set ID of
pset.
#include <sys/pset.h>
int ret;
psetid_t pset;
if ((ret = pset_destroy(pset)) < 0) {
perror("pset_destroy");
}
RETURN VALUE
pset_destroy
returns zero on successful completion.
Otherwise, -1 is returned and
errno
is set to indicate the error.
ERRORS
pset_destroy
fails if one or more of the following is true:
- [EBUSY]
The attribute value for the processor set does not allow
deletion of a non-empty processor set.
- [EINTR]
The operation was interrupted.
- [EINVAL]
pset
is not a valid processor set.
- [ENOSYS]
The processor set functionality is not supported by the
underlying HP-UX version.
- [EPERM]
The user does not have necessary permissions to destroy a
processor set or the system default processor set was specified.