Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
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 [-c] [-l cpu-list] -C -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 	  Create a new cpuset and assign the target process to that
		  set.

     -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.  A special list of
		  ``all'' may be specified in which case the list includes all
		  CPUs from the root set.

     -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>

     Create a new cpuset that is restricted to CPUs 0 and 2 and move pid into
     the new set:
	   cpuset -C -c -l 0,2 -p <pid>

SEE ALSO
     cpuset(2)

HISTORY
     The cpuset command first appeared in FreeBSD 7.1.

AUTHORS
     Jeffrey Roberson <jeff@FreeBSD.org>

FreeBSD 8.3		       January 14, 2011 		   FreeBSD 8.3

NAME | SYNOPSIS | DESCRIPTION | EXIT STATUS | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=cpuset&manpath=FreeBSD+9.1-RELEASE>

home | help