set_mempolicy(2) System Calls Manual set_mempolicy(2) set_mempolicy - NUMA NUMA ( ) (libnuma -lnuma) #include long set_mempolicy(int mode, const unsigned long *nodemask, unsigned long maxnode); set_mempolicy() NUMA mode nodemask maxnode. NUMA (CPUs) . . . mbind(2). mmap(2) MAP_PRIVATE () mmap(2) MAP_SHARED . . . mode MPOL_DEFAULT MPOL_BIND MPOL_INTERLEAVE MPOL_WEIGHTED_INTERLEAVE MPOL_PREFERRED MPOL_PREFERRED_MANY MPOL_LOCAL ( ). MPOL_DEFAULT nodemask. mode . : MPOL_F_NUMA_BALANCING ( 5.12) mode MPOL_BIND NUMA . mode MPOL_BIND -1 errno EINVAL. MPOL_F_RELATIVE_NODES ( 2.6.26) nodemask cpuset . MPOL_F_STATIC_NODES ( 2.6.26) nodemask . nodemask cpuset cpuset . nodemask maxnode. sizeof(unsigned long) maxnode . NULL nodemask maxnode . maxnode nodemask. nodemask cpuset ( MPOL_F_STATIC_NODES) . MPOL_F_STATIC_NODES mode nodemask cpuset . cpuset nodemask. mode : MPOL_DEFAULT "" . " "-- . nodemask NULL. " " "". MPOL_BIND nodemask. nodemask . nodemask . nodemask. MPOL_INTERLEAVE nodemask . . . MPOL_WEIGHTED_INTERLEAVE ( 6.9) nodemask /sys/kernel/mm/mempolicy/weighted_interleave. 0 2 5 nodemask /sys/kernel/mm/mempolicy/weighted_interleave/node0 /sys/.../node2 /sys/.../node5 4 7 9 0 2 5 4:7:9. MPOL_PREFERRED . "" . nodemask . nodemask maxnode " " ( ). MPOL_PREFERRED_MANY ( 5.15) . MPOL_PREFERRED . ( ) . MPOL_LOCAL ( 3.8) " " (" "). nodemask maxnode . " " . " " . " " cpuset . " " cpuset . execve(2) fork(2) clone(2). set_mempolicy() 0 -1 errno . EFAULT nodemask maxnode . EINVAL mode . mode MPOL_DEFAULT nodemask mode MPOL_BIND MPOL_INTERLEAVE nodemask . maxnode . nodemask . nodemask cpuset . mode MPOL_F_STATIC_NODES MPOL_F_RELATIVE_NODES. MPOL_F_NUMA_BALANCING mode MPOL_BIND. ENOMEM . . 2.6.7. (swapped out). . numa(7). get_mempolicy(2) getcpu(2) mbind(2) mmap(2) numa(3) cpuset(7) numa(7) numactl(8) 3 . . : . 6.18 8 2026 set_mempolicy(2)