.\" 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.
.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 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 AUTHOR
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 AVAILABILITY
The taskset command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
