Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v2.9.3

  |   Home   |   Support   |   FAQ   |  
Linux-specific helpers

Functions

int hwloc_linux_set_tid_cpubind (hwloc_topology_t topology, pid_t tid, hwloc_const_cpuset_t set)
 
int hwloc_linux_get_tid_cpubind (hwloc_topology_t topology, pid_t tid, hwloc_cpuset_t set)
 
int hwloc_linux_get_tid_last_cpu_location (hwloc_topology_t topology, pid_t tid, hwloc_bitmap_t set)
 
int hwloc_linux_read_path_as_cpumask (const char *path, hwloc_bitmap_t set)
 

Detailed Description

This includes helpers for manipulating Linux kernel cpumap files, and hwloc equivalents of the Linux sched_setaffinity and sched_getaffinity system calls.

Function Documentation

◆ hwloc_linux_get_tid_cpubind()

int hwloc_linux_get_tid_cpubind ( hwloc_topology_t  topology,
pid_t  tid,
hwloc_cpuset_t  set 
)

Get the current binding of thread tid.

The CPU-set set (previously allocated by the caller) is filled with the list of PUs which the thread was last bound to.

The behavior is exactly the same as the Linux sched_getaffinity system call, but uses a hwloc cpuset.

Returns
0 on success, -1 on error.
Note
This is equivalent to calling hwloc_get_proc_cpubind() with HWLOC_CPUBIND_THREAD as flags.

◆ hwloc_linux_get_tid_last_cpu_location()

int hwloc_linux_get_tid_last_cpu_location ( hwloc_topology_t  topology,
pid_t  tid,
hwloc_bitmap_t  set 
)

Get the last physical CPU where thread tid ran.

The CPU-set set (previously allocated by the caller) is filled with the PU which the thread last ran on.

Returns
0 on success, -1 on error.
Note
This is equivalent to calling hwloc_get_proc_last_cpu_location() with HWLOC_CPUBIND_THREAD as flags.

◆ hwloc_linux_read_path_as_cpumask()

int hwloc_linux_read_path_as_cpumask ( const char *  path,
hwloc_bitmap_t  set 
)

Convert a linux kernel cpumask file path into a hwloc bitmap set.

Might be used when reading CPU set from sysfs attributes such as topology and caches for processors, or local_cpus for devices.

Returns
0 on success, -1 on error.
Note
This function ignores the HWLOC_FSROOT environment variable.

◆ hwloc_linux_set_tid_cpubind()

int hwloc_linux_set_tid_cpubind ( hwloc_topology_t  topology,
pid_t  tid,
hwloc_const_cpuset_t  set 
)

Bind a thread tid on cpus given in cpuset set.

The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset.

Returns
0 on success, -1 on error.
Note
This is equivalent to calling hwloc_set_proc_cpubind() with HWLOC_CPUBIND_THREAD as flags.