__pset_rtctl(2)__pset_rtctl(2)NAME__pset_rtctl() - real-time processor set control
SYNOPSISDESCRIPTION
HP-UX 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 (see pset_create(2)).
The function extends processor set functionality for real-time applica‐
tions to minimize operating system activities in a processor set. A
processor set can be configured as a real-time processor set (referred
to as RTE processor set). An RTE processor set has the following spe‐
cial features that are not available in standard processor sets:
The scheduler does not schedule kernel daemons on processors in the
RTE processor set. Kernel daemons are restricted to processors in
non-RTE processor sets.
External I/O interrupts on processors in the RTE processor set are dis‐
abled.
The system is reconfigured to not deliver any external I/O inter‐
rupts to processors in the RTE processor set. (The clock inter‐
rupt still continues to come on each processor though). This fea‐
ture may not be supported on all platforms (see intctl(1M) for
details).
All pending callouts on processors in the RTE processor set are reas‐
signed to
processors in non-RTE processor sets. However, if a real-time
application in an RTE processor set requests a service which
requires callout support in the kernel, such callouts may execute
on RTE processors.
The system always has at least one non-RTE processor set. The system
default processor set (see pset_create(2)) cannot be configured as an
RTE processor set. Since the system default processor set is never
empty, there is always at least one processor in a non-RTE processor
set to execute the kernel daemons, I/O interrupts and callouts for the
system.
The request argument specifies the operation to perform on the proces‐
sor set pset for real time extension. The following values are sup‐
ported:
Configure the specified processor set, pset, as an RTE processor set.
The processor set may or may not have processors assigned at this
point. If pset has processors assigned to it at the time of this
request, these processors are made unavailable to the kernel daemons.
External I/O interrupts and pending callouts on processors in pset are
reassigned to processors in non-RTE processor sets in the system. The
processor set attribute values are changed to default values for an RTE
processor set. If pset has any assigned workload, it continues to exe‐
cute in that processor set. The arg argument is ignored.
Unconfigure the specified processor set
pset as an RTE processor set. The processors, if any, in this
processor set are made available to the kernel daemons. The
system may redistribute the external I/O interrupts with avail‐
ability of these processors. Pending callouts in the system are
not redistributed to these processors. The processor set
attribute values are restored to default values for a non-RTE
processor set as applicable. If pset has any assigned workload,
it continues to execute in that processor set. The arg argument
is ignored. Return the ID of the first RTE processor set in the
system. The pset and arg arguments are ignored.
Return the ID of the next RTE processor set in the system after
pset. The arg argument is ignored.
Typically, is called to determine the first RTE processor set.
is then called in a loop (until the call returns -1) to deter‐
mine the IDs of the remaining RTE processor sets in the system.
See pset_ctl(2) for additional processor set query operations. The
function allows users to query all processor sets in the system, pro‐
cessors in a specific processor set, processor set given a processor,
etc.
A processor may be added to an RTE processor set using the function.
In this case, the processor is made unavailable to the kernel daemons;
external I/O interrupts and pending callouts on this processor are
reassigned to processors in non-RTE processor sets in the system. Con‐
versely, if a processor is removed from an RTE processor set and added
to a non-RTE processor set, it is made available to the kernel daemons
and for external I/O interrupts. Similarly, if a non-empty RTE proces‐
sor set is destroyed, its processors are made available to the kernel
daemons and for external I/O interrupts.
Only a user with appropriate privileges may configure and unconfigure
an RTE processor set. However, any user may query the IDs and configu‐
ration of RTE processor sets. Only a user with appropriate privileges
may reassign processors into or out of an RTE processor set, change
attribute values, or destroy an RTE processor set. Any user with EXEC
permissions in an RTE processor set may run applications in that RTE
processor set.
HP-UX processor sets define processor set attributes to provide users
explicit control in managing their processor set configuration and work
load assignment among many users and applications (see pset_getattr(2)
for details). A processor set is assigned default values for these
attributes at creation time. The RTE processor sets attributes are
assigned different default values at time of configuration. The sup‐
ported attributes and their default values are:
UID of the processor set owner. When a processor set is converted into
an RTE pset, the owner of the pset changes to that of the effective uid
of the calling process. The owner of the pset or a user with appropri‐
ate privilege can change this attribute using (See pset_setattr(2).)
GID of processor set's owner group.
When a processor set is converted into an RTE pset, the group of
the pset changes to that of the effective gid of the calling
process. The owner of the pset or a user with appropriate priv‐
ilege can change this attribute using (See pset_setattr(2).)
Access permissions for the processor set.
When a processor set is converted to an RTE processor set, the
permissions are reset such that the processor set owner has all
permissions, group has READ and EXEC permissions, and others
have only READ permissions. The owner of the pset or a user
with appropriate privileges can change this attribute using (See
pset_setattr(2).)
Indicates the behavior on a request to bind a process
or a thread to a processor set that does not contain any proces‐
sors. For RTE processor sets, such a request is rejected by
default. However, a user with appropriate privileges or a user
with WRITE access to the pset can change the value of this
attribute to allow deletion of an empty RTE processor set. See
pset_getattr(2) for supported values.
A flag to indicate if processors in the processor set are
configured to receive external I/O interrupts or not. All pro‐
cessors in an RTE processor set are disabled to receive inter‐
rupts. This attribute cannot be enabled until the processor set
is unconfigured as an RTE processor set.
Indicates the behavior on a request to remove the last processor from a
processor set if there are active processes and threads bound to
the processor set. For RTE processor sets, such a request is
rejected by default. However, a user with appropriate privi‐
leges or a user with WRITE access to the pset can change the
value of this attribute to allow removal of the last processor
from an RTE processor set even if the processor set is busy.
See pset_setattr(2) for supported values.
Indicates the behavior on a request to destroy a non-empty processor
set.
A non-empty processor set has at least one processor assigned to
it. For RTE processor sets, such a request will be rejected by
default. However, a user with appropriate privileges or a user
with WRITE access to the pset can change the value of this
attribute to allow deletion of an RTE processor set in use. See
pset_setattr(2) for supported values.
Indicates whether the physical processor cores in the RTE pset is
enabled
with logical processors (LCPUs). See pset_setattr(2) for
details and supported values.
Processor Set Support
Use with to see if the processor set functionality is supported by the
underlying HP-UX operating system version.
Use with to see if the RTE processor set functionality is supported by
the underlying HP-UX operating system version.
Security Restrictions
Some or all of the actions associated with this system call require the
privilege. Processes owned by the superuser have this privilege. Pro‐
cesses owned by other users may have this privilege, depending on sys‐
tem configuration. See privileges(5) for more information about privi‐
leged access on systems that support fine-grained privileges.
RETURN VALUE
returns zero on successful completion for and requests.
For and requests, the ID of an RTE processor set is returned if one is
found.
Otherwise, is returned and is set to indicate the error.
ERRORS
fails if one or more of the following is true:
The specified processor set
pset is already configured as RTE processor set, and the
request is issued.
The request is invalid.
The specified processor set
pset is invalid.
The specified processor set
pset is not an RTE processor set, and request is issued.
The request is and there is no other RTE processor set after pset.
The RTE processor set functionality is not supported by the
underlying HP-UX version.
The user does not have necessary permissions to perform the requested
operation.
The specified processor set,
pset, is a special, reserved processor set, and cannot
be configured as an RTE processor set.
EXAMPLES
Create a new processor set, and configure it as an RTE processor set:
SEE ALSOpsrset(1M), pset_assign(2), pset_bind(2), pset_ctl(2), pset_destroy(2),
pset_getattr(2), pset_setattr(2), sysconf(2), privileges(5).
__pset_rtctl(2)