为什么flush_dcache_page()在linux内核中什么都不做?

我发现flush_dcache_page()在x86 arch上的linux内核中没有做任何事情,如下所示

包括/ ASM-通用/ cacheflush.h

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

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

但是,flush_dcache_page()不会像上面的源代码一样运行任何CPU指令.

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

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

解决方法:

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

“如果D-cache别名不是问题,那么这个例程可能只是被定义为该架构上的nop.”

上一篇:[architecture]-图解armv7/armv8的异常向量表和基地址


下一篇:【华为云技术分享】ARMv8-A存储模型概述(2)