Provided by: cpuset_1.5.6-3_all bug


       cset-proc - manage processes running in cpusets


       cset [cset options] proc [proc options] [args]
       cset proc --help
       cset proc
       cset proc my_set my_other_set
       cset proc --list --set my_set
       cset proc --exec my_set /opt/software/my_code --my_opt_1
       cset proc --set my_set --exec /opt/software/my_code --my_opt_1
       cset proc --move 2442,3000-3200 my_set
       cset proc --move --pid=2442,3000-3200 --toset=my_set
       cset proc --move --fromset=my_set_1 --toset=my_set_2
       cset proc --move --pid=42 --fromset=/group1/myset --toset=/group2/yourset


       -h, --help
           prints the list of options for this command

       -l, --list
           list processes in the specified cpuset

       -e, --exec
           execute arguments in the specified cpuset

       -u USER, --user=USER
           use this USER to --exec (id or name)

       -g GROUP, --group=GROUP
           use this GROUP to --exec (id or name)

       -m, --move
           move specified tasks to specified cpuset; to move a PIDSPEC to a cpuset, use -m
           PIDSPEC cpuset; to move all tasks specify --fromset and --toset

       -p PIDSPEC, --pid=PIDSPEC
           specify pid or tid specification

           if specified, any processes found in the PIDSPEC to have multiple threads will
           automatically have all their threads added to the PIDSPEC (use to move all related
           threads to a cpuset)

       -s CPUSET, --set=CPUSET
           specify name of immediate cpuset

       -t TOSET, --toset=TOSET
           specify name of destination cpuset

       -f FROMSET, --fromset=FROMSET
           specify name of origination cpuset

       -k, --kthread
           move, or include moving, unbound kernel threads

           force all processes and threads to be moved

       -v, --verbose
           prints more detailed output, additive


       This command is used to run and manage arbitrary processes on specified cpusets. It is
       also used to move pre-existing processes and threads to specified cpusets. You may note
       there is no "kill" or "destroy" option — use the standard OS ^C or kill commands for that.

       To list which tasks are running in a particular cpuset, use the --list command.

       For example:

       # cset proc --list --set myset

       This command will list all the tasks running in the cpuset called "myset".

       Processes are created by specifying the path to the executable and specifying the cpuset
       that the process is to be created in.

       For example:

       # cset proc --set=blazing_cpuset --exec /usr/bin/fast_code

       This command will execute the /usr/bin/fast_code program on the "blazing_cpuset" cpuset.

       Note that if your command takes options, then use the traditional "--" marker to separate
       cset’s options from your command’s options.

       For example:

       # cset proc --set myset --exec  ls -l

       This command will execute "ls -l" on the cpuset called "myset".

       The PIDSPEC argument taken for the move command is a comma separated list of PIDs or TIDs.
       The list can also include brackets of PIDs or TIDs (i.e. tasks) that are inclusive of the

       For example:

           1,2,5         Means processes 1, 2 and 5
           1,2,600-700   Means processes 1, 2 and from 600 to 700

           The range of PIDs or TIDs does not need to have every position populated. In other
           words, for the example above, if there is only one process, say PID 57, in the range
           of 50-65, then only that process will be moved.
       To move a PIDSPEC to a specific cpuset, you can either specify the PIDSPEC with --pid and
       the destination cpuset with --toset, or use the short hand and list the cpuset name after
       the PIDSPEC for the --move arguments.

       The move command accepts multiple common calling methods. For example, the following
       commands are equivalent:

       # cset proc --move 2442,3000-3200 reserved_set

       # cset proc --move --pid=2442,3000-3200 --toset=reserved_set

       These commands move the tasks defined as 2442 and any running task between 3000 and 3200
       inclusive of the ends to the cpuset called "reserved_set".

       Specifying the --fromset is not necessary since the tasks will be moved to the destination
       cpuset no matter which cpuset they are currently running on.

           However, if you do specify a cpuset with the --fromset option, then only those tasks
           that are both in the PIDSPEC and are running in the cpuset specified by --fromset will
           be moved. I.e., if there is a task running on the system but not in --fromset that is
           in PIDSPEC, it will not be moved.
       If the --threads switch is used, then the proc command will gather any threads of
       belonging to any processes or threads that are specified in the PIDSPEC and move them.
       This provides an easy way to move all related threads: just pick one TID from the set and
       use the --threads option.

       To move all userspace tasks from one cpuset to another, you need to specify the source and
       destination cpuset by name.

       For example:

       # cset proc --move --fromset=comp1 --toset=comp42

       This command specifies that all processes and threads running on cpuset "comp1" be moved
       to cpuset "comp42".

           This move command will not move kernel threads unless the -k/--kthread switch is
           specified. If it is, then all unbound kernel threads will be added to the move.
           Unbound kernel threads are those that can run on any CPU. If you also specify the
           --force switch, then all tasks, kernel or not, bound or not, will be moved.

           Please be cautious with the --force switch, since moving a kernel thread that is bound
           to a specific CPU to a cpuset that does not include that CPU can cause a system hang.
       You must specify unique cpuset names for the both exec and move commands. If a simple name
       passed to the --fromset, --toset and --set parameters is unique on the system then that
       command executes. However, if there are multiple cpusets by that name, then you will need
       to specify which one you mean with a full path rooted at the base cpuset tree.

       For example, suppose you have the following cpuset tree:


       Then, to move a process from myset in group1 to yourset in group2, you would have to issue
       the following command:

       # cset proc --move --pid=50 --fromset=/group1/myset --toset=/group2/yourset

       You do not have to worry about where in the Linux filesystem the cpuset filesystem is
       mounted. The cset command takes care of that. Any cpusets that are specified by path (such
       as above), are done with respect to the root of the cpuset filesystem.


       Cpuset is licensed under the GNU GPL V2 only.


       Copyright (c) 2008-2011 Novell Inc.


       Written by Alex Tsariounov <>.


       cset(1), cset-set(1), cset-shield(1)


       taskset(1), chrt(1)


[FIXME: source]                             06/09/2011                               CSET-PROC(1)