runon - Runs a command or process on a specific CPU, a
processor set (pset), or a Resource Affinity Domain (RAD)
runon cpu_num command [argument...]
runon -p pset_id [-x] command [argument...]
runon -r rad_id [-r rad_id]... command [argument...]
runon -P pid cpu_num
runon -P pid -p pset_id [-x]
runon -P pid -r rad_id [-r rad_id]...
runon -u -P pid
Displays the usage message. The usage message is also
displayed automatically if an error is encountered when
executing the command. Assigns a process to a CPU, processor
set, or RAD. Assigns the process or command to a
processor set. You must specify the processor set identification
number (pset_id), which is a unique number
returned by the pset_create command. The pset_id value of
the system default processor set is 0 (zero).
You can specify the -x option only with the -p
option. Binds the process or command to a Resource
Affinity Domain (RAD).
More than one -r argument may be specified if the
program being run should be bound to a particular
set of RADs. This option is most appropriate if you
want to bind the threads of a large multi-threaded
program to a particular set of RADs. (On a system
that runs several large, multi-threaded programs,
it can sometimes help system performance to bind
the threads of different programs to different sets
The operating system software treats systems that
do not use NUMA architecture as single-RAD systems.
Unbinds the specified process from a RAD or CPU
and, if the process was assigned to a user-defined
processor set, reassigns the process to the default
processor set (pset 0). See DESCRIPTION for information
about the conditions that require you to
release one binding before attempting another.
Specifies exclusive use of a processor set. You can
include the -x option only with the -p option.
Specifies the CPU on which the command or process is to
run. Specifies the command that is to be run on the CPU,
processor set, or RAD. Specifies one or more arguments to
The runon utility does one of the following: Starts a command
on the specified CPU, processor set (pset) or
Resource Affinity Domain (RAD). The argument operand represents
any options or arguments for the specified command.
All the threads created by the command inherit the
specified binding, including threads created as the result
of a fork. If command is a user shell, then all processes
launched from that shell inherit the specified binding.
Assigns a process to the specified CPU, RAD, or processor
If the process is already bound to a CPU or a RAD,
you must first unbind the process by using a command
with the -u option.
The form of the runon command that assigns a process
to processor set is equivalent to the
The runon utility does not support assignments of processes
or commands to resources that are not currently
available. In other words, an error is returned if you try
to start a program or reassign a running process to: A CPU
that is offline or that is bound exclusively to another
process A RAD or processor set that is empty A RAD or processor
set in which all CPUs are either offline or exclusively
bound to other processes
If a process is currently running on a specific CPU, RAD,
or processor set and you want to change where the process
is running, you might have to unbind the process first.
Unbinding a process (using a command with the -u option)
is a necessary first step only if the new assignment will
be outside the boundaries of the RAD or processor set
where the process is currently running.
For example, assuming a NUMA system for which no CPUs are
assigned to user-defined processor sets, if the process
was started on one RAD (or a specific CPU in that RAD) and
you want to assign the process to another RAD (or a specific
CPU in another RAD), you must first use the runon -u
command to unbind the process.
If the process being unbound is running in a user-defined
processor set, the process will automatically be reassigned
to the default processor set (pset 0) when it is
unbound. At that point, you can bind the process only to
CPUs and RADs included in pset 0 or assign the process to
another processor set. So, if you want to bind that process
to a RAD or CPU in a processor set other than pset 0,
you must first assign the process to the other processor
set by using the runon -P pid -p pset_id command. Only
then can you use a runon command that assigns the process
to a RAD or specific CPU in the new processor set.
Commands: pset_assign_cpu(1), pset_assign_pid(1),
pset_create(1), pset_info(1), psradm(8)
[ Back ]