numa_scheduling_groups(4)numa_scheduling_groups(4)NAMEnuma_scheduling_groups - HP Tru64 UNIX NUMA Scheduling Groups descrip‐
tion (libnuma library)
DESCRIPTION
Normally, the kernel scheduler attempts to distribute the workload
evenly over the entire machine. When the system resources are evenly
utilized, the machine is considered to be balanced. When balancing the
workload, the scheduler operates in a context-free manner; that is,
processes may be distributed to various CPUs, or other resources, with‐
out regard to their function or relationship to one another. In certain
cases, a user may wish to bundle a group of processes together so that
they have equal access to the same system resources. For instance,
cooperating processes that share the same physical memory may perform
better if all of these processes execute on CPUs that are local to that
memory.
NUMA Scheduling Groups (NSG) cause the scheduler load-balancing system
to treat all members of an NSG as a unit. If one process belonging to
an NSG moves from one Resource Affinity Domain (RAD) to another, all
other members of the NSG have to move with it.
NSGs and their members have the following characteristics: The resource
domain of the first process joining an NSG provides the initial
resource domain location for that NSG, called the NSG home RAD. All
other processes joining the NSG (through the nsg_attach_pid() function)
will be migrated to the NSG home RAD. If the joining process is not
allowed to migrate, the nsg_attach_pid() function will fail. To sup‐
port load balancing, an NSG is allowed to migrate to any RAD on the
system if none of its members is bound to a specific resource (such as
another RAD, CPU, and so on). An NSG member is allowed to attach to or
bind to a resource only if no other members are bound to different
resources. The entire NSG will migrate to the RAD containing the
resource at the time it was successfully bound. If one NSG member is
bound to a resource, all other members of that NSG are also bound to
the RAD containing that resource, because the NSG and, therefore its
members, is no longer allowed to migrate.
SEE ALSO
Commands: runon(1)
Functions: numa_intro(3), bind_to_cpu(3), nsg_attach_pid(3),
nsg_detach_pid(3), nsg_destroy(3), nsg_get(3), nsg_get_nsgs(3),
nsg_get_pids(3), nsg_init(3), nsg_set(3), rad_attach_pid(3),
rad_bind_pid(3), rad_detach_pid(3)numa_scheduling_groups(4)