命令を数えてアプリケーションに加えたい変更のパフォーマンス測定を実行したい。しかし、私はこれを行う方法を知るために、ARMのデバッグインタフェースについて十分に精通していません。このようなことのためのインターフェースもありますか?私は必要に応じて完全にカーネルに潜入することができますが、私の直感からは、このようなことがユーザ空間に実装されるべきだと私に伝えます。 LinuxカーネルでARMプログラムで実行される命令数を数えるには?
2
A
答えて
1
CONFIG_PERF_EVENTS
これにアクセスするための.config
ユーザ空間のツールはlinux-source/tools/perf/
HW_PERF_EVENTS
にあるPMU、CPU_HAS_PMU
がthuslyに定義されて有効になります。(CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && (!ARCH_OMAP3 || OMAP3_EMU)
ので、あなたのチップは、おそらくそれを持っています。さもなければ、Linuxはソフトウェアでいくつかの統計情報を取得しようとします(割り込みで%pcの値をサンプリングする、と思われます)。
0
ARM Profiler User Guideはinstruction traceがReal-Time System Model で実行したときに作成することができ、コードやリプレイビューdisassembly panelにカウント実行される命令を表示することができますと言います。
関連する問題
サイクルカウンタにアクセスするこの議論を見てください。http://stackoverflow.com/questions/3247373/how-to-measure-program-execution-time-in-arm-cortex-a8-processor –
ありがとうございますチップが、私はシミュレータで実行しているので、サイクルカウントが役に立たなくなります。代わりに命令数に頼らざるを得ません。 – Alex
どのシミュレータを使用していますか?たぶんそれは、命令カウントを報告したり、命令トレースを生成する能力を持っています。 –