4

我是 Linux 内核编程的新手。我对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;

它们看起来一样,这两个例子有什么区别?

4

1 回答 1

3

你是对的,文档不正确。实际上您的文件版本不是最新的。3.8-rc3 中有一个提交修复了该问题: http ://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f191eec58803e1e16c3421638cdcc9195c425851

希望有帮助。马蒂亚斯

于 2013-01-12T17:26:52.390 回答