2011-05-20 61 views
3

所以編程在Linux內核基本L1和L2高速緩存相關程序(arch/arm/mm/cache-X.S)說,例如具體到ARM11處理器後,有沒有可用的測試工具/程序來測試緩存是否正常工作等無效,沖洗正常發生。我們如何確保它,而不僅僅依賴於我們自己的計劃。測試緩存失效,並刷新

回答

0

您可以看看LMBench的深度基準,它可以在幾乎所有的Linux平臺上運行(我已經成功地在x86,ARM9和CortexA8架構上使用過它)。您將能夠衡量緩存性能。

+3

我認爲這個問題是問如何驗證高速緩存行被正確刷新/低級別的緩存管理程序無效。 LMBench並不是真正的工具。 – 2011-05-20 12:26:02

+0

正確的,得到的LMBench更是一個高速緩存性能測量工具。我正在尋找的是驗證。作爲蘭斯提到 – kumar 2011-05-20 14:46:10

0

如果你的緩存使用RAM,你可以刷新Linux的RAM:

echo "1" > /proc/sys/vm/drop_caches 
echo "0" > /proc/sys/vm/drop_caches 
free -m 
+0

他的問題是問一個CPU的緩存,而不是磁盤緩存。 – 2015-01-05 20:25:06

1

可以使用perfcounters子系統。它基本上是在CPU性能計數器,這是硬件寄存器記錄如緩存未命中,執行的指令,分支預測失誤等,還提供一個抽象的軟件事件(原文如此),如輕微/重大頁面錯誤,任務遷移,任務上下文事件的一個抽象開關和跟蹤點。該perftool可用於監視和驗證正確緩存行爲 - 例如,你可以通過填充緩存,刷新它,在隨後的測量內存高速緩存未命中的訪問,並將其與您預期的結果正確地檢查高速緩存刷新的作品。