mpctl.2 (2010 09)
m
mpctl(2) mpctl(2)
If the processor set binding for a process or an LWP in a launch tree is changed to another processor set,
that process or LWP becomes the root of a new launch tree. When creating a new process or an LWP, if
the root of the launch tree is found to be in a different processor set, the new process or LWP is made the
root of a new launch tree.
NOTE: locality domains are tightly tied to the physical components of the underlying system. As a
result, the performance observed when using launch policies based on locality domains may vary from
system to system. For example, a system which contains 4 locality domains, each containing 32 proces-
sors, may exhibit different performance behaviors from a system that contains 32 locality domains with 4
processors per domain. The launch policy that provides optimal performance on one system may not pro-
vide optimal performance on a different system for the same application.
For process launch policies use:
int mpctl(mpc_request_t request, ldom_t ldom, pid_t pid);
The request argument determines the precise action to be taken by
mpctl() and is one of the following:
MPC_GETPROCESS_LAUNCH
This request currently returns
MPC_LAUNCH_POLICY_RR
,
MPC_LAUNCH_POLICY_FILL
, MPC_LAUNCH_POLICY_PACKED
,
MPC_LAUNCH_POLICY_LEASTLOAD
, MPC_LAUNCH_POLICY_RR_TREE
,
MPC_LAUNCH_POLICY_FILL_TREE
,orMPC_LAUNCH_POLICY_NONE
to
indicate the current launch policy of the process specified by pid. Other launch
policies may be added in future releases and returned via this option. Applica-
tions using this option should be written to handle other return values in order
to continue working on future releases. The ldom argument is ignored.
MPC_SETPROCESS_RR
This call establishes a round robin launch policy (MPC_LAUNCH_POLICY_RR
)
for the specified process. The successive child processes are launched on
different locality domains in a round robin manner until all available locality
domains have been used by processes in the launch tree. At that point, the
selection of locality domains begins again from the original locality domain. The
ldom argument is ignored.
MPC_SETPROCESS_FILL
This call establishes a fill first launch policy (MPC_LAUNCH_POLICY_FILL
) for
the specified process. The successive child processes are launched on the same
locality domain as their parent process until one process has been created for
each available processor in the domain. At that point, a new locality domain is
selected and successive processes are launched there until there is one process
per processor. All available locality domains will be used before the original
domain is selected again. The ldom argument is ignored.
MPC_SETPROCESS_PACKED
This call establishes a packed launch policy (MPC_LAUNCH_POLICY_PACKED)
for the specified process. The successive child processes are launched on the
same locality domain as their parent process. The ldom argument is ignored.
MPC_SETPROCESS_LEASTLOAD
This call establishes a least loaded launch policy
(MPC_LAUNCH_POLICY_LEASTLOAD) for the specified process. The successive
child processes are launched on the least loaded locality domain in the processor
set regardless of the location of their parent process. The ldom argument is
ignored.
MPC_SETPROCESS_RR_TREE
This call establishes a tree based round robin launch policy
(MPC_LAUNCH_POLICY_RR_TREE) for the specified process. This request
differs from MPC_SETPROCESS_RR in which processes become part of the
launch tree. This launch policy includes all descendents of the target process in
the launch tree. The ldom argument is ignored.
MPC_SETPROCESS_FILL_TREE
This call establishes a tree based fill first launch policy
(MPC_LAUNCH_POLICY_FILL_TREE) for the specified process. This request
differs from MPC_SETPROCESS_FILL in which processes become part of the
10 Hewlett-Packard Company − 10 − HP-UX 11i Version 3: September 2010