129 lines
4.1 KiB
Groff
129 lines
4.1 KiB
Groff
.\" taskset(1) manpage
|
|
.\"
|
|
.\" Copyright (C) 2004 Robert Love
|
|
.\"
|
|
.\" This is free documentation; you can redistribute it and/or
|
|
.\" modify it under the terms of the GNU General Public License as
|
|
.\" published by the Free Software Foundation; either version 2 of
|
|
.\" the License.
|
|
.\"
|
|
.\" The GNU General Public License's references to "object code"
|
|
.\" and "executables" are to be interpreted as the output of any
|
|
.\" document formatting or typesetting system, including
|
|
.\" intermediate and printed output.
|
|
.\"
|
|
.\" This manual is distributed in the hope that it will be useful,
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
.\" GNU General Public License for more details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public License along
|
|
.\" with this program; if not, write to the Free Software Foundation, Inc.,
|
|
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
.\"
|
|
.\" 2002-05-11 Robert Love <rml@tech9.net>
|
|
.\" Initial version
|
|
.\"
|
|
.TH TASKSET 1 "April 2003" "util-linux" "User Commands"
|
|
.SH NAME
|
|
taskset \- retrieve or set a process's CPU affinity
|
|
.SH SYNOPSIS
|
|
.B taskset
|
|
.RI [ options ]\ mask
|
|
.IR command\ [ arg ]...
|
|
.br
|
|
.B taskset
|
|
.RI [ options ]
|
|
.B \-p
|
|
.RI [ mask ]\ pid
|
|
.SH DESCRIPTION
|
|
.PP
|
|
.B taskset
|
|
is used to set or retrieve the CPU affinity of a running process given its PID
|
|
or to launch a new COMMAND with a given CPU affinity. CPU affinity is a
|
|
scheduler property that "bonds" a process to a given set of CPUs on the system.
|
|
The Linux scheduler will honor the given CPU affinity and the process will not
|
|
run on any other CPUs. Note that the Linux scheduler also supports natural
|
|
CPU affinity: the scheduler attempts to keep processes on the same CPU as long
|
|
as practical for performance reasons. Therefore, forcing a specific CPU
|
|
affinity is useful only in certain applications.
|
|
.sp
|
|
The CPU affinity is represented as a bitmask, with the lowest order bit
|
|
corresponding to the first logical CPU and the highest order bit corresponding
|
|
to the last logical CPU. Not all CPUs may exist on a given system but a mask
|
|
may specify more CPUs than are present. A retrieved mask will reflect only the
|
|
bits that correspond to CPUs physically on the system. If an invalid mask is
|
|
given (i.e., one that corresponds to no valid CPUs on the current system) an
|
|
error is returned. The masks are typically given in hexadecimal. For example,
|
|
.TP
|
|
.BR 0x00000001
|
|
is processor #0
|
|
.TP
|
|
.BR 0x00000003
|
|
is processors #0 and #1
|
|
.TP
|
|
.BR 0xFFFFFFFF
|
|
is all processors (#0 through #31).
|
|
.PP
|
|
When
|
|
.BR taskset
|
|
returns, it is guaranteed that the given program has been scheduled to a legal
|
|
CPU.
|
|
.SH OPTIONS
|
|
.TP
|
|
.BR \-a ,\ \-\-all-tasks
|
|
Set or retrieve the CPU affinity of all the tasks (threads) for a given PID.
|
|
.TP
|
|
.BR \-p ,\ \-\-pid
|
|
Operate on an existing PID and do not launch a new task.
|
|
.TP
|
|
.BR \-c ,\ \-\-cpu-list
|
|
Specify a numerical list of processors instead of a bitmask. The numbers
|
|
are separated by commas and may include ranges. For example:
|
|
.BR 0,5,7,9-11 .
|
|
.TP
|
|
.BR \-h ,\ \-\-help
|
|
Display usage information and exit.
|
|
.TP
|
|
.BR \-V ,\ \-\-version
|
|
Display version information and exit.
|
|
.SH USAGE
|
|
.TP
|
|
The default behavior is to run a new command with a given affinity mask:
|
|
.B taskset
|
|
.I mask
|
|
.IR command\ [ arguments ]
|
|
.TP
|
|
You can also retrieve the CPU affinity of an existing task:
|
|
.B taskset \-p
|
|
.I pid
|
|
.TP
|
|
Or set it:
|
|
.B taskset \-p
|
|
.I mask pid
|
|
.SH PERMISSIONS
|
|
A user must possess
|
|
.B CAP_SYS_NICE
|
|
to change the CPU affinity of a process. Any user can retrieve the affinity
|
|
mask.
|
|
.SH AUTHOR
|
|
Written by Robert M. Love.
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2004 Robert M. Love
|
|
.br
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
.SH "SEE ALSO"
|
|
.BR chrt (1),
|
|
.BR nice (1),
|
|
.BR renice (1),
|
|
.BR sched_setaffinity (2),
|
|
.BR sched_getaffinity (2)
|
|
.sp
|
|
See
|
|
.BR sched_setscheduler (2)
|
|
for a description of the Linux scheduling scheme.
|
|
.SH AVAILABILITY
|
|
The taskset command is part of the util-linux package and is available from
|
|
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
|