runon(1)runon(1)NAMErunon - Runs a command or process on a specific CPU, a processor set
(pset), or a Resource Affinity Domain (RAD)
SYNOPSISrunon 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
runon-h
OPTIONS
Displays the usage message. The usage message is also displayed auto‐
matically 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 iden‐
tification 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 some‐
times help system performance to bind the threads of different
programs to different sets of RADs.)
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.
OPERANDS
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. Spec‐
ifies one or more arguments to command.
DESCRIPTION
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 speci‐
fied command. All the threads created by the command inherit the spec‐
ified 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 set.
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 proces‐
sor set is equivalent to the pset_assign_pid command.
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 pro‐
cesses
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 pro‐
cessor 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.
SEE ALSO
Commands: pset_assign_cpu(1), pset_assign_pid(1), pset_create(1),
pset_info(1), psradm(8)
Files: processor_sets(4)
Other: numa_intro(3)runon(1)