在LINUX上测量TLB未命中的命令?


11

请问有人可以指导我在LINUX上测量TLB丢失的命令吗?是否可以考虑(或近似)由于TLB遗漏而导致的轻微页面错误?

Answers:


10

您可以使用PERF访问硬件性能计数器:

$ perf stat -e dTLB-load-misses,iTLB-load-misses /path/to/command

例如:

$ perf stat -e dTLB-load-misses,iTLB-load-misses /bin/ls > /dev/null

 Performance counter stats for '/bin/ls':

             5,775 dTLB-load-misses                                            
             1,059 iTLB-load-misses                                            

       0.001897682 seconds time elapsed

2

轻微的故障和TLB的错失不是很好的类似物。当请求的页面在内存中但未映射到当前页面表中时,会发生次要错误。肯定会出现小错误与TLB丢失相关的情况(因为TLB条目是页表条目的快捷方式),但TLB丢失将由许多其他原因引起,例如硬错误或程序本地转换。 。


1

当页面已经加载到内存中但尚未创建关联的页面表条目时,会发生次要页面错误。副作用是,较小的页面错误总是会导致TLB丢失。另一方面,当页面的翻译条目未驻留在TLB(它是缓存)中时,就会发生TLB丢失,而由于TLB的容量有限,该TLB条目先前已被撤出时,可能会发生TLB丢失。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.