我嘗試爲英特爾至強E5系列使用性能計數器(linux perf
)。英特爾至強處理器緩存事件的性能計數器
我對緩存未命中的解釋頗爲困惑。雖然L1和LLC值易於訪問,但L2的信息必須通過-rNNN事件從寄存器中讀取。但在文檔中,我還沒有找到如何將帶有掩碼字段的事件編號合併爲NNN值。在perf help
中只有一個例子顯示值A8和01的掩碼導致1a8。但是掩蔽的一般規則是什麼?它不應該寫在文檔中,或者它是一個標準的OR函數什麼的?
另外我還沒有從文檔或其他相關主題的回覆中瞭解到Xeon案例中測量的LLC值是L3還是L2。當硬件有第三級緩存時會發生什麼? LLC是否仍然測量最後一級,即L3事件?
有人清除了嗎?
使用['perf'的'ocperf.py'包裝器](https://github.com/andikleen/pmu-tools)爲uarch特定的事件獲取符號名稱,如'mem_load_retired.l2_hit','l2_lines_in .all','l2_rqsts.all_demand_data_rd'(需求加載到L2)Skylake上。 –