Gets a process's CPU affinity mask
A process's CPU affinity mask determines the set of CPUs on which it is eligible to run. On a multiprocessor system, setting the CPU affinity mask can be used to obtain performance benefits. For example, by dedicating one CPU to a particular process (i.e., setting the affinity mask of that process to specify a single CPU, and setting the affinity mask of all other processes to exclude that CPU), it is possible to ensure maximum execution speed for that process. Restricting a process to run on a single CPU also prevents the performance cost caused by the cache invalidation that occurs when a process ceases to execute on one CPU and then recommences execution on a different CPU.
Arguments
eax |
242 |
ebx |
PID of the process. If it's zero then the mask of the calling process is returned. |
ecx |
Length in bytes of the buffer pointed to by edx. Should be equal to the size of cpumask_t structure. |
edx |
Pointer to a buffer which will receive the cpumask_t structure:
struc cpumask_t
{
bits rd ((NR_CPUS+31)/32)
} |
|
Return values
If the system call succeeds the return value is 0.
If the system call fails the return value is one of the following errno values:
-EFAULT |
A supplied memory address was invalid. |
-EINVAL |
Size of the buffer pointed by edx is smaller than sizeof.cpumask_t. |
-ESRCH |
The process whose ID is ebx could not be found. |
|
Remarks
n/a
Compatibility
n/a |