cpuset(4)
cpuset, miser_cpuset - cpuset configuration files
As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.15.
NAME cpuset, miser_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 additional 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 permission 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 IRIX. For information on how to use cpusets in a Trusted IRIX environment, see the cpuset(1) man page. 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. MEMORY_LOCAL 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 outside the cpuset is available. If, at the time a cpuset is created, memory is already assigned to threads that are already running, no attempt will be made to explicitly move this memory. If page migration is enabled, the pages will be migrated when the system detects that most references to the pages are non-local. 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 allocations will occur from within the cpuset. WARNING: It is strongly recommended that this option not be used for most cpuset configurations. A side effect of this option is that kernel memory allocations become concentrated on the remaining system nodes, which may in turn degrade system performance. This option is effective only for certain workload patterns, and could cause severe performance penalties in other situations. It is recommended that this option be used only when indicated by SGI support. Currently this option prevents only the system buffer cache from being placed on the specified nodes. Future IRIX releases may expand the scope of this protection to exclude other kernel memory allocations from the specified nodes. This option was introduced in IRIX 6.5.7. 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 process 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 (see swap(1M)) 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 contained 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 2 CPU 3-4,5,7,9-12 NOTES In a cluster environment, the cpuset configuration file should reside on the root filesystem. If the cpuset configuration file resides on a filesystem other than the root filesystem and you attempt to unmount the filesystem, the vnode for the cpuset remains active and the unmount (see mount(1M) command fails. Make sure that your workload manager sets the configuration file to reside on the root filesystem. SEE ALSO cpuset(1), cpuset(5). IRIX Admin: Resource Administration