答えて

2

パフォーマンスモニタカウンタ(PMC)は、初期化する必要はありません。ソフトウェアが機能を使用する場合は、PMCをプログラム(または設定)する必要があります。

CPUはリセット後、少なくともアーキテクチャ上は何も表示されません(プログラマが見ることができます)。

このようなことは、ブートローダは処理しません。

彼らは命令のみ(のようなrdmsrwrmsr)でアクセスできるモデル固有レジスタ(MSRを)しているので、それは(すなわち、それらはカーネル空間で実行するためのコードが必要)特権であることのPMCをhandleaカーネルモジュールであります。 カーネルモジュールは、OSインターフェイスを介して、または命令rdpmcが特権のないコードによって実行されるようにすることで、機能をユーザー空間プログラムに公開することができます。


PMCの詳細については、Intel Manual 3B, Chapter 18を参照してください。

+0

IIRCの場合、カーネルはperfカウンタへの直接のユーザー空間アクセスを可能にすることができます。 (すなわち、[RDPMC命令](http://www.felixcloutier.com/x86/RDPMC.html)がユーザー空間で動作するように設定する) –

+0

@PeterCordes私が間違っていない場合、ユーザー空間プログラムは読むために 'rdpmc'を使います。しかし、それは言及する価値がある、ありがとう! –

+0

私はRDPMCを手作業で使用していませんが、実際のカウンターを読むためだけだと思います。あなたが数えたいものを選択するには、あなたはWRMSRが必要だと思います。それでも、非常に低いオーバーヘッド測定には十分であり、RDTSCよりも低い。 (また、ウォールクロックのリファレンスサイクルではなく、コアクロックサイクルをカウントすることができます)。 –

関連する問題