Search code examples
linuxmultithreadingaffinity

Get process and thread affinity mask on Linux


On Windows, there exists the GetProcessAffinityMask API call, and there also exists a roundabout way of finding the thread affinity mask, seen here:

Query thread (not process) processor affinity?

Is there any way of getting this information in Linux? A call to sched_getcpu() returns only the cpu that the thread is currently running on, not its affinity mask.


Solution

  • sched_setaffinity() & sched_getaffinity().

    pthread_attr_setaffinty_np() & pthread_attr_getaffinity_np().

    pthread_setaffinity_np() & pthread_getaffinity_np().

    The _np stands for non-portable.