pset_create.2 (2010 09)

p
pset_create(2) pset_create(2)
NAME
pset_create() - create a processor set
SYNOPSIS
#include <sys/pset.h>
int pset_create(psetid_t *newpset);
DESCRIPTION
The pset_create()
function creates an empty processor set with no processors. Processor sets allow a
subset of processors in the system to be isolated for exclusive use by specified threads and processes.
Only the threads bound to a processor set can execute on processors in that processor set. The binding of
threads and processes to processor sets is controlled by the
pset_bind() function (see pset_bind (2)).
A unique identifier is assigned to the new processor set created by the
pset_create()
function, and is
returned to the caller in the memory location pointed to by newpset . This value is valid only if the func-
tion return value is zero.
A processor can be assigned to a processor set by the
pset_assign() function. A processor may not
belong to more than one processor set at a time. There may be an implementation dependent limit on the
maximum number of processor sets that may exist (created and not destroyed) at any given time.
Any user may create a new processor set with the
pset_create()
function. However, special permis-
sions are needed to populate a processor set with processors (see pset_assign (2)), to execute applications
in a processor set (see pset_bind (2)), or to destroy a processor set (see pset_destroy (2)). There may be a
per user limit on how many processor sets that users without the
PSET privilege may own.
Every processor set is assigned ownership and access permission attributes. The creator of a processor
set becomes the default owner of the processor set.
The READ, WRITE, and EXEC access permissions are defined for processor sets for three access modes
Owner, Group, and Others similar to the UNIX file system access permissions. The READ permis-
sion allows the caller to query about processor set configuration, the WRITE permission allows the caller
to change processor set configuration and attributes, and the EXEC permission allows the caller to exe-
cute on processors in the processor set. The
pset_setattr()
function may be used to change the own-
ership and access permissions, whereas the
pset_getattr()
function may be used to query the
current ownership and access permissions.
A system default processor set is created at system initialization time and cannot be destroyed. The
default processor set is always owned by the user with UID 0 and has the processor set ID of
PS_DEFAULT. Processor 0 is always assigned to the default processor set and cannot be reassigned to
another processor set.
Note on Hyper-Threading
On systems with the hyper-threading capability enabled at the firmware level, each hyper-thread
represents a logical processor (LCPU). Since the logical processors in the same physical processor core
share common resources, interfaces dealing with workload migration or processor migration must operate
at the physical processor core granularity.
The following is a list of processor set attributes and their default values at processor set creation time
(see pset_getattr (2)):
PSET_ATTR_EMPTY
Indicates the behavior on a request to bind a process or a thread to a processor set that does
not contain any processors. By default, such a request will be rejected.
PSET_ATTR_GRPID
GID of processor set’s owner group. The creator’s gid is assigned by default.
PSET_ATTR_IOINTR
A flag to indicate if processors in the set are configured to receive external I/O interrupts or
not. All processors by default are made available to receive interrupts.
PSET_ATTR_LASTSPU
Indicates the behavior on a request to remove the last processor from a processor set. By
default, all processes/threads assigned to the processor set are reassigned to the default pro-
cessor set and the processor is reassigned as requested.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (4 pages)