测试缓存失效和刷新

时间:2011-05-20 07:14:08

标签: c architecture linux-kernel arm cpu-cache

因此,在编程Linux内核(arch/arm/mm/cache-X.S)中的基本L1和L2缓存相关例程后,例如特定于ARM11处理器,是否有可用于测试缓存是否正常工作的测试实用程序/程序,失效,冲洗正常。我们如何才能确保它而不仅仅依靠我们自己的程序。

3 个答案:

答案 0 :(得分:1)

您可以使用perfcounters子系统。它基本上是CPU性能计数器的抽象,它是硬件寄存器,记录缓存未命中,执行的指令,分支错误预测等事件。它还提供软件事件(sic)的抽象,例如次要/主要页面错误,任务迁移,任务上下文 - 开关和跟踪点。 perf tool可用于监视和验证正确的缓存行为 - 例如,您可以通过填充缓存,刷新缓存,测量后续内存访问中的缓存未命中并进行比较来正确检查缓存刷新是否正常工作达到预期的结果。

答案 1 :(得分:0)

您可以查看LMBench一个可以在几乎所有Linux平台上运行的深度基准测试(我已经在x86,ARM9和CortexA8架构上成功使用过它)。您将能够测量缓存性能。

答案 2 :(得分:0)

如果您的缓存使用RAM,则可以刷新Linux RAM:

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