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.