cpuset - define and manage a set of CPUs


SYNOPSIS

       cpuset    [-q cpuset_name[,cpuset_name_dest] [-A command]
                 [-c -f filename] [-d] [-l] [-m] [-Q] [-C] [-h]


DESCRIPTION

       The  ccppuusseett command is used to create and destroy cpusets,
       to retrieve information about  existing  cpusets,  and  to
       attach a process and all of its children to a cpuset.

       A  cpuset  is a named set of CPUs, which may be defined to
       be restricted (EXCLUSIVE) or open.   A  restricted  cpuset
       only  allows  processes  that are members of the cpuset to
       run on the set of CPUs.  An open cpuset allows any process
       to  run on its cpus, but a process that is a member of the
       cpuset can only run on the CPUs belonging to the cpuset.

       A cpuset is defined by a cpuset configuration file  and  a
       name.   See cpuset(4) for a definition of the file format.
       The cpuset configuration file is used  to  list  the  CPUs
       that  are  members  of  the  cpuset.  It also contains any
       additional parameters required to define  the  cpuset.   A
       cpuset  name  is  between three and eight characters long;
       names of two or less characters are reserved.

       The file permissions  of  the  configuration  file  define
       access  to  the  cpuset.   When  permissions  need  to  be
       checked, the current permissions of the file are used.  It
       is  therefore  possible  to  change  access  to particular
       cpuset without having to tear it  down  and  recreate  it,
       simply  by  changing  the access permissions.  Read access
       allows a user to retrieve information about a cpuset while
       execute  permission allows the user to attach a process to
       the cpuset.

       Cpusets require two user classes:   root  and  user.   The
       root  class creates, destroys, moves a process, and adds a
       process to the cpuset.  The user class is governed by  the
       file  permissions  of the configuration file for the given
       cpuset.

       Given a configuration file with the following characteris­
       tics:

              Permissions     Owner   Group   Size    Filename
              --------------------------------------------------
              -rwxr-----      root    cpuset  512     cpuset.test

       Group read permission allows a user belonging to the group
       cpuset  to  list  all cpusets in the cpuset defined by the
       ccppuusseett..tteesstt file and get a listing  of  all  processes  in
       this  cpuset.   In  order for the user to add processes to

       need to change the permissions as follows:

              Permissions     Owner   Group   Size    Filename
              --------------------------------------------------
              -rwxr-x---      root    cpuset  512     cpuset.test


OPTIONS

       -q cpuset_name  -A command
              Runs the command on the cpuset identified by the -q
              parameter.   If  the user does not have access per­
              missions or the cpuset does not exist, an error  is
              returned.

       -q cpuset_name  -c -f  filename
              Creates a cpuset with the configuration file speci­
              fied by the -f parameter and the name specified  by
              the  -q  parameter.   If  the  cpuset  name already
              exists, a CPU specified in the cpuset configuration
              file  is  already a member of a cpuset, or the user
              does not have the requisite permissions, the opera­
              tion fails.

       -q cpuset_name -d
              Destroys  the specified cpuset.  Any processes cur­
              rently attached to it continue running  where  they
              are, but no further commands to list (-Q) or attach
              (-A) to that cpuset will succeed.

       -q cpuset_name -Q
              Prints a list  of  the  cpus  that  belong  to  the
              cpuset.

       -C     Prints  the name of the cpuset to which the process
              is currently attached.

       -Q     Lists  the  names  of  all  the  cpusets  currently
              defined.

       -h     Print the command's usage message.


RESTRICTIONS

       A CPU can belong to at most one cpuset.

       CPU 0 cannot belong to an EXCLUSIVE cpuset.

       Only the superuser can create or destroy cpusets.

       runon(1)  can not run a command on a cpu that is part of a
       cpuset unless the user has write or group write permission
       to  access  the cpuset's configuration file (this restric­
       tion is not yet implemented -- runon is not  yet  so  con­
       strained.)

       Rather restriction is established by  booting  the  kernel
       with the optional boot command line parameter
              cpumemset_minimal
       that  establishes the CpuMemSets(2) initial kernel CpuMem­
       Set to only include the first CPU and  memory  node.   The
       rest  of  the  systems  CPUs and memory then remain unused
       until attached to using cpuset or  some  other  such  root
       priviledged facility.  The cpuset command and library sup­
       port ensure restriction among clients of cpusets, but  not
       from other processes.

       There is no facility to list all processes in a cpuset.

       There  is  no  facility  to  detach  all  processes from a
       cpuset.

       There is no facility  to  move  all  processes  out  of  a
       cpuset.

       Deleting  a  cpuset does not require that no processes are
       attached to it, and does  not  affect  any  processes  (or
       descendents thereof) already attached.

       While  it  is  possible to determine if a given process is
       running on a cpumemset entirely contained within a  cpuset
       (see  the  -C  option), it is not possible to know whether
       that process got there by some explicit request to  attach
       (-A)  to  that cpuset by name, or by some other mechanism.
       The -C option will display the  name  of  cpuset  entirely
       containing  the  specified  processes  cpumemset in either
       case.

       Not all of the Memory Policies, as described in  cpuset(4)
       are  supported.  See the RESTRICTIONS section on that man­
       ual entry.


SEE ALSO

       runon(1), cpuset(4), cpuset(5).


Man(1) output converted with man2html