cpuset(7) Miscellaneous Information Manual cpuset(7) cpuset - cpuset cpuset . /dev/cpuset. cpusets cpuset cpusets . cpusets nodev cpuset /proc/filesystems. cpuset ( EXAMPLES ) cpusets . cpuset cpuset cpuset . cpuset (CPUs) . (Hyper-Threads) . SMP NUMA ( ) . cpusets (/dev/cpuset) ( ) cpuset () cpuset . cpusets . cpuset . cpuset cpuset. fork(2) cpuset . cpuset cpuset . cpuset cpuset. cpusets cpuset cpusets . cpusets sched_setaffinity(2) mbind(2) set_mempolicy(2) . cpuset . cpuset cpuset . cpuset . cpuset . cpuset . /dev/cpuset cpuset cpuset. cpuset mkdir(2) mkdir(1). cpuset cpuset . cpuset cpuset mkdir(2). . cpuset cpuset rmdir(2) rmdir(1). . cpuset cat(1) echo(1) / open(2) read(2) write(2) close(2). cpuset . cpuset . tasks (PIDs) cpuset. ASCII . cpuset ( cpuset ) (PID) tasks cpuset ( ). : (PID) tasks . . notify_on_release (0 1). (1) cpuset ( cpuset ) cpuset . Notify On Release . cpuset.cpus cpuset . List Format cpus. cpuset cpus . cpuset.cpu_exclusive (0 1). (1) cpuset ( cpuset ). (0). cpusets (0). cpuset cpuset /dev/cpuset. cpuset . cpu_exclusive cpuset cpusets cpus cpus cpus cpuset cpus cpuset . cpuset.mems cpuset . List Format mems. cpuset.mem_exclusive (0 1). (1) cpuset ( ). (1) cpuset cpuset Hardwall ( ). (0). cpusets (0). mem_exclusive cpuset cpuset cpuset . cpuset.mem_hardwall ( 2.6.26) (0 1). (1) cpuset cpuset Hardwall ( ). mem_exclusive cpusets mem_hardwall cpusets . (0). cpusets (0). cpuset.memory_migrate ( 2.6.16) (0 1). (1) . (0). Memory Migration . cpuset.memory_pressure ( 2.6.16) cpuset. Memory Pressure . memory_pressure_enabled (0). . WARNINGS . cpuset.memory_pressure_enabled ( 2.6.16) (0 1). cpuset /dev/cpuset. (1) memory_pressure cpusets . (0). Memory Pressure . cpuset.memory_spread_page ( 2.6.17) (0 1). (1) ( ) cpuset. (0) cpuset cpuset cpusets . Memory Spread . cpuset.memory_spread_slab ( 2.6.17) (0 1). (1) (slab caches) / ( inodes) cpuset. (0) cpuset cpuset cpusets . Memory Spread . cpuset.sched_load_balance ( 2.6.24) (0 1). (1 ) cpuset . (0) cpuset cpuset sched_load_balance. Scheduler Load Balancing . cpuset.sched_relax_domain_level ( 2.6.26) -1 . sched_relax_domain_level . sched_load_balance sched_relax_domain_level . sched_load_balance sched_relax_domain_level . Scheduler Relax Domain Level . /dev/cpuset /proc/pid/cpuset cpuset cpuset. /proc/pid/status Cpus_allowed ( ) Mems_allowed ( ) Mask Format List Format ( ) : Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff Cpus_allowed_list: 0-127 Mems_allowed: ffffffff,ffffffff Mems_allowed_list: 0-63 "allowed" 2.6.24 "allowed_list" 2.6.26. cpus mems cpusets . cpuset cpuset cpu_exclusive mem_exclusive cpuset . cpuset mem_exclusive . cpusets mem_exclusive . cpuset . cpuset mem_exclusive cpusets mem_exclusive . cpuset mem_exclusive. Hardwall cpuset mem_exclusive mem_hardwall cpuset hardwall. cpuset hardwall . cpusets hardwall . cpuset . cpuset hardwall cpusets hardwall. cpuset hardwall. notify_on_release (1) cpuset cpuset ( cpuset ) cpuset /sbin/cpuset_release_agent ( cpuset) cpuset . cpusets . notify_on_release cpuset (0). cpusets notify_on_release . /sbin/cpuset_release_agent cpuset ( /dev/cpuset) argv[1]. /sbin/cpuset_release_agent : #!/bin/sh rmdir /dev/cpuset/$1 ASCII 0 1 ( ) . memory_pressure cpuset cpuset . cpusets . . cpuset . . /dev/cpuset/cpuset.memory_pressure_enabled cpuset memory_pressure "0\n" ASCII. WARNINGS . cpuset : o cpuset . o . o cpuset - cpuset - ( ) cpuset. memory_pressure cpuset cpuset . cpuset cpuset . . (dirty) . . cpuset.memory_pressure ( 10 ) cpuset 1000. cpuset . cpuset.memory_spread_page cpuset.memory_spread_slab. cpuset.memory_spread_page cpuset ( ) . cpuset.memory_spread_slab cpuset (slab caches) inodes . ( brk(2)) . . NUMA cpuset . cpusets . NUMA . cpuset mbind(2) set_mempolicy(2). NUMA cpuset . cpuset NUMA . cpuset.memory_spread_page cpuset.memory_spread_slab . "0" cpuset. "1" . cpuset ( ) (round-robin) (interleave). cpuset : o (thread-local) o (cpuset) . . () cpuset.memory_migrate ( ) mems . mems . memory_migrate . . . . sched_setaffinity(2). ( ) . . ( ). sched_load_balance . "isolcpus=". ( ). : o . . o (real-time) . sched_load_balance ( ) ( sched_setaffinity(2)) . sched_load_balance sched_load_balance. sched_load_balance sched_load_balance . sched_load_balance . . . sched_load_balance . . . time(7). sched_relax_domain_level . sched_relax_domain_level ( sched_load_balance). sched_setaffinity(2). . . sched_relax_domain_level . . 2.6.26 sched_relax_domain_level . 1 (Hyper-Thread) . 2 (package). 3 (blade). 4 ( ) [ NUMA]. 5 [ NUMA]. (0) sched_relax_domain_level . (-1) sched_relax_domain_level . . "relax_domain_level=". sched_relax_domain_level . -1 0 . . /proc/pid/status. 32 ( ASCII "0" - "9" "a" - "f") . . big-endian . big-endian. 32 . Examples of the Mask Format: 00000001 # 0 40000000,00000000,00000000 # 94 00000001,00000000,00000000 # 64 000000ff,00000000 # 32-39 00000000,000e3862 # 1 5 6 11-13 17-19 0 1 2 4 8 16 32 64 : 00000001,00000001,00010117 "1" 64 32 16 8 4 "7" 2 1 0. cpus mems ASCII . Examples of the List Format: 0-4,9 # 0 1 2 3 4 9 0-2,7,12-14 # 0 1 2 7 12 13 14 : o ( ) . o cpu_exclusive . o mem_exclusive . o cpu_exclusive . o mem_exclusive . /dev/cpuset. ( ) tasks . tasks. . ( kill(2)). . ( ) cpus mems . . . . ( cd chdir(2) /dev/cpuset ) . ( /dev/cpuset). /dev/cpuset. /dev/cpuset/tasks . memory_pressure cpuset.memory_pressure (0). "1" /dev/cpuset/cpuset.memory_pressure_enabled memory_pressure . echo echo echo write(2). : echo 19 > cpuset.mems 19 ( ) echo . /bin/echo write(2) : /bin/echo 19 > cpuset.mems /bin/echo: write error: Invalid argument . (hot-plug) cpus_allowed . . (offline). . GFP_ATOMIC . . . . . rename(2) . . errno . errno . E2BIG write(2) . EACCES write(2) (PID) tasks . EACCES write(2) . EACCES cpuset.cpu_exclusive cpuset.mem_exclusive write(2) . EACCES write(2) cpuset.memory_pressure. EACCES . EBUSY rmdir(2). EBUSY rmdir(2). EBUSY . EEXIST (cpuset) mkdir(2) . EEXIST rename(2) . EFAULT read(2) write(2) . EINVAL write(2) cpu_exclusive mem_exclusive . EINVAL write(2) cpuset.cpus cpuset.mems . EINVAL write(2) cpuset.cpus cpuset.mems . EINVAL write(2) cpuset.cpus cpuset.mems . EINVAL write(2) cpuset.cpus (online). EINVAL write(2) cpuset.mems . EINVAL write(2) cpuset.mems . EIO write(2) tasks ASCII. EIO rename(2) . ENAMETOOLONG read(2) /proc/pid/cpuset . ENAMETOOLONG mkdir(2) 255 . ENAMETOOLONG mkdir(2) ( "/dev/cpuset/") 4095 . ENODEV write(2) . ENOENT mkdir(2) . ENOENT access(2) open(2) . ENOMEM . ENOSPC write(2) (PID) tasks cpuset.cpus cpuset.mems . ENOSPC write(2) cpuset.cpus cpuset.mems . ENOTDIR rename(2) . EPERM . ERANGE cpuset.cpus cpuset.mems . ESRCH write(2) (PID) tasks . 2.6.12. pid (thread ID) . gettid(2) pid. cpuset.memory_pressure write(2) errno EACCES open(2) . . . : (1) mkdir /dev/cpuset ( ) (2) mount -t cpuset none /dev/cpuset ( ) (3) mkdir(1). (4) . (5) . "Charlie" 2 3 1 . $ mkdir /dev/cpuset $ mount -t cpuset cpuset /dev/cpuset $ cd /dev/cpuset $ mkdir Charlie $ cd Charlie $ /bin/echo 2-3 > cpuset.cpus $ /bin/echo 1 > cpuset.mems $ /bin/echo $$ > tasks # Charlie # '/Charlie' $ cat /proc/self/cpuset . ( ) . (1) alpha ( 4-7 2-3) beta ( 16-19 8-9). (2) beta. (3) 16-19 8-9 beta. (4) memory_migration beta. (5) alpha beta. . $ cd /dev/cpuset $ mkdir beta $ cd beta $ /bin/echo 16-19 > cpuset.cpus $ /bin/echo 8-9 > cpuset.mems $ /bin/echo 1 > cpuset.memory_migrate $ while read i; do /bin/echo $i; done < ../alpha/tasks > tasks alpha beta 2-3 8-9 . : $ cp ../alpha/tasks tasks while cp(1) (PID) tasks. ( ) while -u ( ) sed(1): $ sed -un p < ../alpha/tasks > tasks taskset(1), get_mempolicy(2), getcpu(2), mbind(2), sched_getaffinity(2), sched_setaffinity(2), sched_setscheduler(2), set_mempolicy(2), CPU_SET(3), proc(5), cgroups(7), numa(7), sched(7), migratepages(8), numactl(8) Documentation/admin-guide/cgroup-v1/cpusets.rst 3 . . : . 6.18 8 2026 cpuset(7)