Ich bin Tring perf version 3.0.8
zu verwenden, um mein eingebettetes System Linux kernel version 3.0.8
zu profilieren.Perf Tool Linux - Kein Call-Graph
Ich übersetze Tools/Perf mit Zlib und Elfutils.
Um sich mit diesem Tool vertraut zu machen, verwende ich ein einfaches Quicksort-Beispiel, das mit der Option -g
kompiliert wurde.
Ich laufe perf record -F 99 -g -- ./qsort
(kopiert aus dem Beispiel) und dann perf report --stdio
, um meine Profilergebnisse zu sehen.
Dies ist eine Momentaufnahme der perf report -g --stdio
Ausgabe:
No kallsyms or vmlinux with build-id f41dfb5606beda1d75171db69f1e9466cb4868ba was found
[hi3518_dsu] with build id f41dfb5606beda1d75171db69f1e9466cb4868ba not found, continuing without symbols
No kallsyms or vmlinux with build-id a0f9a05faf6bcfb72282a03e048b47e8a8c0f2ec was found
[hi3518_tde] with build id a0f9a05faf6bcfb72282a03e048b47e8a8c0f2ec not found, continuing without symbols
# Events: 256 cpu-clock
#
# Overhead Command Shared Object Symbol
# ........ ....... ................. ......................
#
96.88% qsort qsort [.] partition
0.78% qsort [kernel.kallsyms] [k] __do_softirq
0.39% qsort [kernel.kallsyms] [k] __wake_up_sync_key
0.39% qsort [kernel.kallsyms] [k] get_page_from_freelist
0.39% qsort [kernel.kallsyms] [k] __memzero
0.39% qsort [kernel.kallsyms] [k] div_s64_rem
0.39% qsort [hi3518_tde] [k] 0x58
0.39% qsort [hi3518_dsu] [k] 0x8154
Wie man dort sehen kann, ist überhaupt nicht aufrufen-Spur. Ich bin wirklich interessiert, tief in meinem System zu studieren und ohne eine Anrufverfolgung sind diese Ergebnisse nutzlos.
Bereits erledigt. Es funktioniert nicht. Also habe ich es mit einem anderen Board versucht (anderes SoC und eine neuere Kernel-Version) und magisch funktioniert es gut. Offensichtlich ist das Problem in meiner Leistung. Wahrscheinlich ist meine Kernel-Version sehr sehr alt ... Aber auch ohne '-g'-Option kann ich die Ergebnisse der Performance-Analyse lesen und verwenden. –