Does parallel processing require new languages? Government Computer News Now that almost all new servers and computers are running processors with multiple cores, the software-design community is trying to figure out the best way of making use of this new architecture. Unfortunately, the community is divided about what the best way would to split their programs across [...]
pset_destroy(2) System Calls Manual pset_destroy(2)NAME
pset_destroy() - destroy a processor set
SYNOPSIS DESCRIPTION
The 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 attribute of the processor set through
the function. See pset_getattr(2). The following values are supported for the attribute:
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 proces-
sor set.
Make the request fail with
if there are any threads or processes bound to pset or if there are processors assigned to the pset.
Make the request fail with
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 privilege or a user with WRITE permission on the pset may destroy the processor set pset. The system default processor set
may never be destroyed.
Security Restrictions
Some or all of the actions associated with this system call require the 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 support 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 destruction of a processor set migrates a set of processor cores to the default processor set. Depending on the source processor set
and the default processor set's 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.
RETURN VALUE
returns zero on successful completion. Otherwise, -1 is returned and is set to indicate the error.
ERRORS
fails if one or more of the following is true:
The attribute value for the processor set does not allow
deletion of a non-empty processor set.
The operation was interrupted.
pset is not a valid processor set.
The processor set functionality is not supported by the
underlying HP-UX version.
The user does not have necessary permissions to destroy a
processor set or the system default processor set was specified.
SEE ALSO psrset(1M), pset_assign(2), pset_bind(2), pset_create(2), pset_ctl(2), pset_getattr(2), privgrp(4), privileges(5).
pset_destroy(2)