CPUSET(1) FreeBSD General Commands Manual CPUSET(1)
NAME
cpuset -- configure processor sets
SYNOPSIS
cpuset [-l cpu-list] [-s setid] cmd ...
cpuset [-l cpu-list] [-s setid] -p pid
cpuset [-cr] [-l cpu-list]
[-j jailid | -p pid | -t tid | -s setid | -x irq]
cpuset [-cgir] [-j jailid | -p pid | -t tid | -s setid | -x irq]
DESCRIPTION
The cpuset command can be used to assign processor sets to processes, run
commands constrained to a given set or list of processors, and query
information about processor binding, sets, and available processors in
the system.
cpuset requires a target to modify or query. The target may be specified
as a command, process id, thread id, a cpuset id, an irq or a jail id.
Using -g the target's set id or mask may be queried. Using -l or -s the
target's CPU mask or set id may be set. If no target is specified,
cpuset operates on itself. Not all combinations of operations and tar-
gets are supported. For example, you may not set the id of an existing
set or query and launch a command at the same time.
There are two sets applicable to each process and one private mask per
thread. Every process in the system belongs to a cpuset. By default
processes are started in set 1. The mask or id may be queried using -c.
Each thread also has a private mask of CPUs it is allowed to run on that
must be a subset of the assigned set. And finally, there is a root set,
numbered 0, that is immutable. This last set is the list of all possible
CPUs in the system and is queried using -r.
When running a command it may join a set specified with -s otherwise a
new set is created. In addition, a mask for the command may be specified
using -l. When used in conjunction with -c the mask modifies the sup-
plied or created set rather than the private mask for the thread.
The options are as follows:
-c The requested operation should reference the cpuset avail-
able via the target specifier.
-g Causes cpuset to print either a list of valid CPUs or, using
-i, the id of the target.
-i When used with the -g option print the id rather than the
valid mask of the target.
-j jailid Specifies a jail id as the target of the operation.
-l cpu-list Specifies a list of CPUs to apply to a target. Specifica-
tion may include numbers separated by '-' for ranges and
commas separating individual numbers.
-p pid Specifies a pid as the target of the operation.
-s setid Specifies a set id as the target of the operation.
-r The requested operation should reference the root set avail-
able via the target specifier.
-t tid Specifies a thread id as the target of the operation.
-x irq Specifies an irq as the target of the operation.
EXIT STATUS
The cpuset utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
Create a new group with CPUs 0-4 inclusive and run /bin/sh on it:
cpuset -c -l 0-4 /bin/sh
Query the mask of CPUs the <sh pid> is allowed to run on:
cpuset -g -p <sh pid>
Restrict /bin/sh to run on CPUs 0 and 2 while its group is still allowed
to run on CPUs 0-4:
cpuset -l 0,2 -p <sh pid>
Modify the cpuset /bin/sh belongs to restricting it to CPUs 0 and 2:
cpuset -l 0,2 -c -p <sh pid>
Modify the cpuset all threads are in by default to contain only the first
4 CPUs, leaving the rest idle:
cpuset -l 0-3 -s 1
Print the id of the cpuset /bin/sh is in:
cpuset -g -i -p <sh pid>
Move the pid into the specified cpuset setid so it may be managed with
other pids in that set:
cpuset -s <setid> -p <pid>
SEE ALSO
cpuset(2)
HISTORY
The cpuset command first appeared in FreeBSD 7.1.
AUTHORS
Jeffrey Roberson <jeff@FreeBSD.org>
FreeBSD 7.2 November 29, 2008 FreeBSD 7.2
NAME - SYNOPSIS - DESCRIPTION - EXIT STATUS - EXAMPLES - SEE ALSO -
HISTORY - AUTHORS -
|