.\" 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,
.\" version 2, as published by the Free Software Foundation.
.\"
.\" 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.
.\"
.TH TASKSET 1 "August 2014" "util-linux" "User Commands"
.SH NAME
taskset \- set or retrieve a process's CPU affinity
.SH SYNOPSIS
.B taskset
[options]
.IR mask\ command\  [ argument ...]
.br
.B taskset
[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
\fIpid\fR, or to launch a new \fIcommand\fR 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 may be specified in hexadecimal (with or without
a leading "0x"), or as a CPU list with the
.B \-\-cpu\-list
option.  For example,
.RS 4
.TP 12
.B 0x00000001
is processor #0,
.TP
.B 0x00000003
is processors #0 and #1,
.TP
.B 0xFFFFFFFF
is processors #0 through #31,
.TP
.B 32
is processors #1, #4, and #5,
.TP
.B \-\-cpu\-list\ 0-2,6
is processors #0, #1, #2, and #6.
.TP
.B \-\-cpu\-list\ 0-10:2
is processors #0, #2, #4, #6, #8 and #10. The suffix ":N" specifies stride in
the range, for example 0-10:3 is interpreted as 0,3,6,9 list.
.RE
.PP
When
.B 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 \-c ,\  \-\-cpu\-list
Interpret \fImask\fR as numerical list of processors instead of a bitmask.
Numbers are separated by commas and may include ranges.  For example:
.BR 0,5,8-11 .
.TP
.BR \-p ,\  \-\-pid
Operate on an existing PID and do not launch a new task.
.TP
.BR \-V ,\  \-\-version
Display version information and exit.
.TP
.BR \-h ,\  \-\-help
Display help text 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 can change the CPU affinity of a process belonging to the same user.
A user must possess
.B CAP_SYS_NICE
to change the CPU affinity of a process belonging to another user.
A user can retrieve the affinity mask of any process.
.SH AUTHORS
Written by Robert M. Love.
.SH COPYRIGHT
Copyright \(co 2004 Robert M. Love.
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_getaffinity (2),
.BR sched_setaffinity (2)
.sp
See
.BR sched (7)
for a description of the Linux scheduling scheme.
.SH AVAILABILITY
The taskset command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
