per-CPU变量

每个CPU都会保存的变量,因为CPU的指令都是分时复用的,所以对该变量的操作不用锁定,用DEFINE_PER_CPU(type, name)来声明这样一个变量

最好保证这些变量较小,因为在某些架构的CPU上per-CPU地址空间是受限的。一般per-CPU变量可以作为一个会被频繁操作的计数器使用。

静态的per-CPU变量,可以用get_cpu_var, put_cpu_var来操作该变量。
为了防止内核被抢占或切换到其他CPU运行,动态per-CPU变量在操作前,最好用get_cpu()来阻塞内核抢占。