1, process binding
#include <sched.h>
cpu_set_t set;
void Cpu_zero (cpu_set_t *set);
void Cpu_set (int CPU, cpu_set_t *set);
void cpu_clr (int CPU, cpu_set_t *set);
int cpu_isset (int CPU, cpu_set_t *set);
int sched_setaffinity (pid_t pid, size_t cpusetsize,cpu_set_t *mask);
int sched_getaffinity (pid_t pid, size_t cpusetsize,cpu_set_t *mask);
2, Thread binding
int pthread_setaffinity_np (pthread_t thread, size_t cpusetsize, const cpu_set_t *cpuset);
int pthread_getaffinity_np (pthread_t thread, size_t cpusetsize, cpu_set_t *cpuset);
3, Kernel State
void Kthread_bind (struct task_struct *k, unsigned int cpu);
int set_cpus_allowed (struct task_struct *k, cpumask_t new_mask);
4, command-line binding
Taskset-p <COREMASK> <PID>
TASKSET-CP <CORE-LIST> <PID>
5, Interrupt bind core:
Echo 0x3/proc/irq/24/smp_affinity
Cat/proc/irq/24/smp_affinity
LDD: Multi-core affinity