Cavium ThunderX2 SoC 效能監控單元 (PMU UNCORE)¶
ThunderX2 SoC PMU 由獨立的、系統範圍的、每插槽 PMU 組成,例如三級快取 (L3C)、DDR4 記憶體控制器 (DMC) 和 Cavium 一致性處理器互連 (CCPI2)。
DMC 具有 8 個交錯通道,L3C 具有 16 個交錯瓦片。事件針對預設通道(即通道 0)進行計數,並按比例分配到通道/瓦片總數。
DMC 和 L3C 支援最多 4 個計數器,而 CCPI2 支援最多 8 個計數器。計數器可以獨立程式設計以用於不同的事件,並且可以單獨啟動和停止。所有計數器均不支援溢位中斷。DMC 和 L3C 計數器為 32 位,每 2 秒讀取一次。CCPI2 計數器為 64 位,在正常操作下假定不會溢位。
PMU UNCORE (perf) 驅動程式
thunderx2_pmu 驅動程式為 DMC 和 L3C 設備註冊了每個插槽的 perf PMU。每個 PMU 可用於同時計數多達 4 個 (DMC/L3C) 或多達 8 個 (CCPI2) 事件。PMU 在 sysfs 下提供了可用事件和配置選項的描述,參見 /sys/bus/event_source/devices/uncore_<l3c_S/dmc_S/ccpi2_S/>; S 是插槽 ID。
該驅動程式不支援取樣,因此“perf record”將無法工作。也不支援按任務的 perf 會話。
示例
# perf stat -a -e uncore_dmc_0/cnt_cycles/ sleep 1
# perf stat -a -e \
uncore_dmc_0/cnt_cycles/,\
uncore_dmc_0/data_transfers/,\
uncore_dmc_0/read_txns/,\
uncore_dmc_0/write_txns/ sleep 1
# perf stat -a -e \
uncore_l3c_0/read_request/,\
uncore_l3c_0/read_hit/,\
uncore_l3c_0/inv_request/,\
uncore_l3c_0/inv_hit/ sleep 1