簡體   English   中英

如何在ARMv8中執行臟L1-L2緩存行的寫回

[英]How to perform write back of dirty L1-L2 cache lines in ARMv8

我正在尋找一種使用內核模塊刷新L1-L2緩存的方法。 有沒有一種方法可以完全刷新整個群集緩存(4核配置),甚至更好,將臟的緩存行寫回到主內存中?

您想從內核模塊中清除緩存聽起來很奇怪。 這應該由核心內核部分完成,作為驅動程序,您不必為此擔心。

您是否需要在驅動程序中執行任何特定原因?

我想您想看一下Mel Morman撰寫的“了解Linux虛擬內存管理器”的[3.9] 3.9。 我認為您正在尋找的是flush_cache_page(...)

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

好吧,似乎在不同體系結構中刷新緩存的方式實際上是不同的。 但是,我找不到有效的實現。 但是,我要做的是找到我要刷新的特定頁面的頁面表條目(PTE),並將內存屬性更改為“不可緩存”。 然后,數據直接進入DRAM。 (ARMv8)干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM