PLPA originated as an attempt to solve the problem of multiple APIs for processor affinity within Linux, but has since grown into a Linux processor affinity toolkit. It provides a Linux distro/kernel/glibc-independent C API for setting and getting processor affinity, and in newer kernels on supported platforms, it also supports mapping (core, socket) tuples to Linux virtual processor IDs. The plpa-taskset command effectively provides command-line access to the C API, and can be used to get/set processor affinity for new or already-running processes. Affinity can be expressed either as a set of Linux virtual processor IDs or (core, socket) tuples.
License: BSD License (revised)
Changes:
The major new feature of this release is the ability to bind processes to specific (core,socket) sets. Specifically, PLPA allows the binding specification to be specified in terms of cores and sockets (vs. Linux virtual processor IDs). Binding to (core,socket) tuples is available through both the C API and the "plpa-taskset" command-line executable.
More...