perf stat ls
Lauf zeigt dies:Warum zeigt Perf Stat "blockierte Zyklen-Backend" als <nicht unterstützt> an?
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
Warum ist ins Stocken geraten-Zyklen-Backend gezeigt als "nicht unterstützt"? Welche Art von CPU-, Hardware-, Kernel- oder User-Space-Software benötige ich, um diesen Wert zu sehen?
Derzeit versucht RHEL mit Linux 3.12 für x86_64, mit passender "perf" -Version, auf verschiedenen Intel Core i5 und i7-Systemen (Ivy-Bridge-Typ). Keiner von ihnen unterstützt blockierte Zyklen-Backend.
Einige weitere Informationen:
$ 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
Edit: habe gerade versucht, diese auf einem AMD Phenom II X6 1045T CPU unter Ubuntu 12.04 mit Linux 3.2 (32 Bit) - und hier zeigt es Werte für beide ins Stocken geraten -cycles-frontend und stalled-cycles-backend.
Dank für die extensicve Antwort! Ich habe jedoch die "rohe" Ereignisnummer, die dem stalled-cycles-frontend- oder stalled-cycles-backend entspricht, bisher nicht gefunden. Für ersteres sollte es "-e r10e" sein, aber das stimmt nicht ganz überein; für letzteres könnte es "-e r1b1" laut http://stackoverflow.com/questions/22165299/ sein; das wäre laut Intel PDF UOPS_EXECUTED.THREAD - nicht sicher, ob das in Ordnung ist? – oliver
Scheint, als bewahre Intel die Zahlen in Tabelle 19-1, Architektonische Leistungsereignisse, wenn neue Mikroarchitektur veröffentlicht wird, aber vielleicht sind die anderen Implementierungsabhängig? Ich weiß es nicht. – amdn
Schöne und beredte Antwort. Versuchte 'perf stat -e r412e -e Cache-vermisst Datum' und ich bekomme die gleichen Ergebnisse für r412e und Cache-Misses. Aber wenn ich dasselbe mit 'perf stat -e r412e -e cache-misses real-slow-application' mache, bekomme ich irgendwie andere Ergebnisse im Bereich von einer halben Milliarde Fehler bei einer 10 Sekunden laufenden Anwendung. Irgendwelche Ideen warum? – insumity