ccNUMA Overview
Discovering the execution domain topology
The mpctl() system call is used to discover the system or the processor set (pset) topology. It can also be used to
work backward to discover which pset a processor or LDOM belongs on.
Table 3. MPCTL arguments to find system topology
System CPUs System LDOMs Processor Set CPUs Processor Set LDOMs
MPC_GETNUMSPUS_SYS MPC_GETNUMLDOMS_SYS MPC_GETNUMSPUS MPC_GETNUMLDOMS
MPC_GETFIRSTSPU_SYS MPC_GETFIRSTLDOM_SYS MPC_GETFIRSTSPU MPC_GETFIRSTLDOM
MPC_GETNEXTSPU_SYS MPC_GETNEXTLDOM_SYS MPC_GETNEXTSPU MPC_GETNEXTLDOM
MPC_GETCURRENTSPU MPC_LDOMSPUS_SYS MPC_LDOMSPUS
MPC_SPUTOLDOM
For application developers, it is probably best to focus on the processor set (pset), since psets will sometimes be
used to manage applications and users. If a system is not using psets, the whole system becomes the default pset.
For more information, refer to the Processor sets white paper,
www.hp.com/products1/unix/operating/hpux11i_proc_sets.html
.
Utilizing the execution domain
The mpctl system call is used to assign processes and threads to a specific LDOM and/or specific processors.
A thread is also referred to as a Light Weight Process (LWP).
Table 4. MPCTL arguments to bind processes and threads
Process Thread (Light Weight Process)
MPC_SETPROCESS MPC_SETLWP
MPC_SETPROCESS_FORCE MPC_SETLWP_FORCE
MPC_SETLDOM MPC_SETLWPLDOM
The MPC_SETPROCESS and MPC_SETPROCESS_FORCE assign a process to a specific processor, whereas
MPC_SETLWP and MPC_SETLWP_FORCE assign a thread to a specific processor. The MPC_SETPROCESS and
MPC_SETLWP request an advisory assignment, a request per se. The MPC_SETPROCESS_FORCE and
MPC_SETLWP_FORCE request mandatory assignment that the scheduler will obey until the system configuration
changes. The MPC_SETLDOM and MPC_SETLWPLDOM assign a process or thread to a locality domain.
Discovering a process’s locality bindings
The mpctl system call can be used to discover what kinds of bindings are assigned for a process or thread.
Table 5. MPCTL arguments to find binding values
Process Threads
MPC_GETPROCESS_BINDVALUE MPC_GETLWP_BINDINGTYPE
12