我是Linux内核编程的新手。我对the memory barriers文档感到困惑,在 GUARANTEES 章节中。
特定CPU中的重叠加载和存储似乎在该CPU中排序。
*X = c; d = *X;
CPU 仅发出问题:
STORE *X = c, d = LOAD *X
然后是另一个例子:
必须假设可以合并或丢弃重叠的内存访问。
*A = X; Y = *A;
我们可能:
STORE *A = X; Y = LOAD *A; STORE *A = Y = X;
它们看起来一样,这两个例子有什么区别?
答案 0 :(得分:3)
你是对的,documnetation是不正确的。 实际上你的文件版本不是最新的。已经有一个3.8-rc3的提交修复了这个问题: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f191eec58803e1e16c3421638cdcc9195c425851
希望有所帮助。 的Matthias