0

我正在寻找一种使用内核模块刷新 L1-L2 缓存的方法。有没有办法完全刷新整个集群缓存(4 核配置)或者更好,将脏缓存行写回主内存?

4

3 回答 3

0

您想从内核模块中刷新缓存听起来很奇怪。这应该由核心内核部分完成,作为驱动程序,您不必担心这一点。

您需要在驱动程序中执行此操作是否有任何特定原因?

于 2018-09-12T10:51:10.197 回答
0

好吧,似乎在不同架构中刷新缓存的方式实际上是不同的。不过,我没有找到可行的实现。但是,我所做的是找到要刷新的特定页面的页表条目(PTE),并将内存属性更改为不可缓存。然后,数据直接进入DRAM。(ARMv8) 干杯

于 2018-11-27T17:37:53.703 回答
0

我想你想看看 Mel Gorman 的“Understanding the Linux Virtual Memory Manager”[1] 的 3.9。我认为您正在寻找的是 flush_cache_page(...)

[1] https://www.kernel.org/doc/gorman/

于 2018-09-12T14:01:25.903 回答