我正在寻找一种使用内核模块刷新L1-L2缓存的方法。 有没有办法完全刷新整个群集缓存(4核心配置),甚至更好,将脏的缓存行写回到主内存中?
答案 0 :(得分:0)
您想从内核模块中清除缓存听起来很奇怪。这应该由核心内核部分完成,作为驱动程序,您不必担心。
您是否需要在驱动程序中执行任何特定的原因?
答案 1 :(得分:0)
我认为您想看看Mel Gorman撰写的“了解Linux虚拟内存管理器”的[3.9] 3.9。我认为您正在寻找的是flush_cache_page(...)
答案 2 :(得分:0)
看来,在不同体系结构中刷新缓存的方式实际上是不同的。但是,我找不到有效的实现。但是,我要做的是找到我要刷新的特定页面的页面表条目(PTE),并将内存属性更改为“不可缓存”。然后,数据直接进入DRAM。 (ARMv8) 干杯