Запуск perf stat ls
показывает это:
Performance counter stats for 'ls':
1.388670 task-clock # 0.067 CPUs utilized
2 context-switches # 0.001 M/sec
0 cpu-migrations # 0.000 K/sec
266 page-faults # 0.192 M/sec
3515391 cycles # 2.531 GHz
2096636 stalled-cycles-frontend # 59.64% frontend cycles idle
<not supported> stalled-cycles-backend
2927468 instructions # 0.83 insns per cycle
# 0.72 stalled cycles per insn
615636 branches # 443.328 M/sec
22172 branch-misses # 3.60% of all branches
0.020657192 seconds time elapsed
Почему задержка-циклы-бэкенд отображается как "не поддерживается"? Какое программное обеспечение, аппаратное обеспечение, ядро или программное обеспечение для пользовательского пространства мне нужно, чтобы увидеть это значение?
В настоящее время это делается на RHEL с Linux 3.12 для x86_64 с соответствующей версией "perf" на разных системах Intel Core i5 и i7 (тип Ivy Bridge). Ни один из них не поддерживает стоп-цикл-бэкэнд.
Дополнительная информация:
$ perf list | grep stalled
stalled-cycles-frontend OR idle-cycles-frontend [Hardware event]
stalled-cycles-frontend OR cpu/stalled-cycles-frontend/ [Kernel PMU event]
$ ls /sys/devices/cpu/events/
branch-instructions bus-cycles cache-references instructions mem-stores
branch-misses cache-misses cpu-cycles mem-loads stalled-cycles-frontend
$ cat /sys/bus/event_source/devices/cpu/events/stalled-cycles-frontend
event=0x0e,umask=0x01,inv,cmask=0x01
Изменить: просто попробовал это на процессоре AMD Phenom II X6 1045T под Ubuntu 12.04 с Linux 3.2 (32bit) - и здесь он показывает значения как для остановленных циклов - frontend и stalled- циклы-бэкенд.