每CPU变量主要是数据结构的数组,系统的每个CPU对应数组的一个元素,一个CPU不应访问与其他CPU对应的元素,另外,它可以随意读写它自己的元素而不担心出现竞争条件。

但这意味着每CPU变量基本上只能在特殊情况下使用,也就是当它确定在系统的CPU上的数据在逻辑上十独立的时候。

内核抢占可能使每CPU变量产生竞态条件:一个CPU获取了它的每CPU变量本地副本的地址,然后它因被抢占而转移到另外一个CPU上,但仍然引用原理CPU的地址