cpuset - cpuset configuration files


DESCRIPTION

       A  cpuset  is defined by a cpuset configuration file and a
       name.  The cpuset configuration file is used to  list  the
       CPUs that are members of the cpuset and contains any addi­
       tional parameters needed to define the cpuset.   The  file
       permissions of the configuration file define access to the
       cpuset.  Every time permissions need to  be  checked,  the
       current permissions of the file are used.  It is therefore
       possible to change access to a 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 permis­
       sion allows the user to attach a process to the cpuset.

       The name of the cpuset  is  a  three  to  eight  character
       string.   Queue  names  having  one  or two characters are
       reserved for use by the system.


EXAMPLE

       The following configuration file  describes  an  exclusive
       cpuset containing 8 CPUs:

       #cpuset configuration file
       EXCLUSIVE
       MEMORY_LOCAL
       MEMORY_EXCLUSIVE

       CPU 16
       CPU 17-19, 21, 23
       CPU 25
       CPU 27

       This specification will create a cpuset containing 8 CPUs,
       and will restrict those cpus to running threads that  have
       been  explicitly  assigned to the cpuset.  Jobs running on
       the cpuset will use memory from nodes containing the  cpus
       in  the  cpuset.   Jobs running on other cpusets or on the
       global cpuset will not use memory from these nodes.


SUMMARY

       Commands are newline terminated, characters following  the
       comment  delimiter  '#'  are  ignored,  case  matters, and
       tokens are separated by whitespace which is ignored.

       The valid tokens are:

       EXCLUSIVE
              Defines a cpuset to be restricted.   It  can  occur
              anywhere in the file.  Anything else on the line is
              ignored.  This capability is not yet implemented.

              Threads assigned to  the  cpuset  will  attempt  to
              assign  memory  only  from nodes within the cpuset.
              Assignment of memory from outside the  cpuset  will
              occur  only  if  no  free  memory is available from
              within the cpuset.  No  restrictions  are  made  on
              memory  assignment  to  threads running outside the
              cpuset.

       MEMORY_EXCLUSIVE
              Threads not assigned to the  cpuset  will  not  use
              memory from within the cpuset unless no memory out­
              side the cpuset is available.

              If, at the time a  cpuset  is  created,  memory  is
              already  assigned  to threads that are already run­
              ning, no attempt will be made  to  explicitly  move
              this memory.

       MEMORY_KERNEL_AVOID
              The  kernel will attempt to avoid allocating memory
              from nodes contained in  this  cpuset.   If  kernel
              memory  requests  cannot  be satisfied from outside
              this cpuset, this option will be ignored and  allo­
              cations will occur from within the cpuset.

       MEMORY_MANDATORY
              The  kernel  will  limit  all memory allocations to
              nodes that are contained in this cpuset.  If memory
              requests  cannot  be satisfied, the allocating pro­
              cess will sleep until  memory  is  available.   The
              process  will  be  killed  if no more memory can be
              allocated.  See policies below.

       POLICY_PAGE
              Requires MEMORY_MANDATORY.   This  is  the  default
              policy if no policy is specified.  This policy will
              cause the kernel to page user  pages  to  the  swap
              file to free physical memory on the nodes contained
              in this cpuset.  If swap space  is  exhausted,  the
              process will be killed.

       POLICY_KILL
              Requires MEMORY_MANDATORY.  The kernel will attempt
              to free as  much  space  as  possible  from  kernel
              heaps,  but  will  not  page user pages to the swap
              file.  If all physical memory  on  the  nodes  con­
              tained  in  this  cpuset are exhausted, the process
              will be killed.

       CPU cpuid or cpuids
              Specifies a single CPU or a list of CPUs that  will
              be  part  of  the cpuset. The user can mix a single
              cpu line with a cpu list line.  For example:

              CPU 3-4,5,7,9-12


RESTRICTIONS

       Permission checking against the cpuset configuration  file
       permissions is not implemented.

       The  kernel  does not enforce cpuset restriction directly.
       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.

       The capabilities of MEMORY_EXCLUSIVE, MEMORY_KERNEL_AVOID,
       MEMORY_MANDATORY, POLICY_PAGE,  and  POLICY_KILL  are  not
       implemented yet.


SEE ALSO

       cpuset(1), cpuset(5).


Man(1) output converted with man2html