【问题标题】:Why flush_dcache_page() does nothing in linux kernel?为什么 flush_dcache_page() 在 linux 内核中什么都不做?
【发布时间】:2013-04-30 06:00:47
【问题描述】:

我发现 flush_dcache_page() 在 x86 架构上的 linux 内核中什么都不做,如下所示

include/asm-generic/cacheflush.h

Line 17    #define flush_dcache_page(page) do {} while (0)

我认为 x86 架构上有缓存刷新指令“CLFLUSH”,它可以用于此页面刷新。

但是,flush_dcache_page() 并没有像上面的源代码那样运行任何 CPU 指令。

为什么 flush_dcache_page() 不在 x86 架构上运行任何指令?

是否保证将dcache中的页面写入主存?

【问题讨论】:

    标签: linux caching kernel cpu instructions


    【解决方案1】:

    来自https://www.kernel.org/doc/Documentation/cachetlb.txt

    “如果 D-cache 别名不是问题,则该例程可以简单地定义为该架构上的 nop。”

    【讨论】:

      猜你喜欢
      • 2013-05-31
      • 2021-05-30
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2016-06-29
      • 1970-01-01
      相关资源
      最近更新 更多