HP-UX Reference (11i v3 07/02) - 2 System Calls (vol 5)

p
pset_destroy(2) pset_destroy(2)
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 user with the PSET privilege 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.
Security Restrictions
Some or all of the actions associated with this system call require the PSET privilege. Processes owned by
the superuser have this privilege. Processes owned by other users may have this privilege, depending on
system configuration. See privileges (5) for more information about privileged access on systems that sup-
port fine-grained privileges.
Note on Logical Processor and Hyper-Threading Feature
On systems with the Hyper-Threading (HT) feature enabled at the firmware level, each processor core may
have more than one hyper-thread per physical processor core. Each hyper-thread is represented to the
operating system and applications as a logical processor (LCPU).
Due to the processor set contract, which specifies that applications bound to a processor set have complete
and exclusive control of all processor cores within that processor set, migration of processors between two
processor sets is done at the processor core granularity.
For
pset_destroy(), destruction of a processor set migrates a set of processor cores to the default pro-
cessor set. Depending on the source processor set and the default processor set’s PSET_ATTR_LCPU, the
number of logical processors visible to the users and applications may change.
EXAMPLES
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");
}
286 Hewlett-Packard Company 1 HP-UX 11i Version 3: February 2007