perfctr是,增加了支持Linux內核(2.4.16或更新版本)使用性能監視計數器(兩局)在許多現代處理器中的應用程序。
支持的處理器包括:
- 所有的英特爾奔騰處理器,也就是說,奔騰,奔騰MMX,奔騰,奔騰II,奔騰III,奔騰M和Pentium 4,包括賽揚和至強版本。
- AMD的K7和K8處理器系列。
- Cyrix的6x86MX,信息產業部和III。
- VIA C3(Cyrix的III)。
- 半人馬的WinChip C6 / 2/3。
- 的PowerPC 604,7XX和74XX處理器
功能:
- 在每個Linux進程都有自己的一套&QUOT的虛擬的QUOT ;兩局。也就是說,一個過程兩局似乎是私有和無關系統中的其它進程的活動。虛擬私人軍事公司具有64位精度,儘管目前的處理器只能實現32,40,或48位的兩局。每個過程中也有一個虛擬的時間戳計數器(TSC)。在大多數機器上,虛擬兩局,可完全在用戶空間採樣,而不會產生一個系統調用的開銷。
- 系統進程訪問其虛擬私人軍事通過打開的/ dev / perfctr和發布系統上生成的文件描述符調用。用戶空間庫是它提供了一個更高層的接口。
- 在該驅動程序還支持全局模式或系統範圍內的兩局。在這種模式下,每一個的PMC每個處理器上可以控制和讀出。主動處理器的兩局和TSC定期採樣,累計金額有64位精度。全球模式的兩局都通過/ dev / perfctr設備文件訪問;用戶空間庫提供了一個更高層次的接口。
- 用戶空間庫是伴隨著幾個示例程序,說明如何在驅動器和磁帶庫都可以使用。
- 支持性能計數器溢出中斷是為英特爾P4和P6,和AMD K7和K8處理器。
限制:
- 在內核早於2.4.16不是因為perfctr-2.6的支持。您可以使用以前的穩定的系列,perfctr-2.4,如果必須使用舊的內核,但是這有幾個限制:
- 在老版本的內核不支持AMD64(x86-64的)。
- 在超線程P4S性能計數器/ Xeon處理器不能使用早於2.4.15的內核。你必須禁用超線程或SMP,或限制自己TSC採樣。
- 在沒有使用分析計數器溢出中斷,除了在2.4.10和更新的內核,還有一些早期的2.4-AC / redhat的內核。
- 編譯perfctr-2.4應用程序代碼是不是與perfctr-2.6兼容,反之亦然。
- 的perfctr-2.4系列不支持2.6內核。其中的一些限制可能會解決的。如果你願意發展這個方向基金與作者聯繫。
- 在性能計數器中斷設施需要SMP或單處理器APIC支持。在後一種情況下,BIOS必須是合理的非手推車。不幸的是,這是常常並非如此。
- 無論是內核驅動程序,也不樣本用戶空間庫試圖隱藏用戶的任何處理器的具體細節。
- 在這個軟件包使得它可以計算總的事件和循環計數的代碼段。由於許多86型處理器使用亂序執行,這是不可能確切屬性事件或週期計數到各個指令。
- 在半人馬的WinChip C6 / 2/3的支持要求TSC是禁用的。
評論沒有發現