いくつかのライブラリ呼び出しのパフォーマンスを測定しようとしています。私の主な測定ツールはrdtsc呼び出しです。いくつかの読書をした後、私は、最も正確な読書を得るために、私は先取りと割り込みを無効にする必要があることを認識します。誰かが私にこれらをする方法を理解するのを助けることができますか?私は、pthreadには「親和性」メカニズムがあることを知っています。それは仕事を完了するのに十分ですか?pthreadを単一のコアに固定する
私はまた、他の上で一つのアプローチを使用してのいずれかの利点があり、私はソート
preempt_disable()
raw_local_irq_save(...)
のカーネルに電話をかけることができることをどこかで読ん?私は後者のアプローチを試みて、このエラーを受けました。
error: 'preempt_disable' was not declared in this scope
これはlinux/preempt.hをインクルードすることで修正できますが、コンパイラはまだ文句を言います。
linux/preempt.h: No such file or directory
はもちろん、私はカーネルのハッキングを行っていないと私はどこにでも私のシステムでこのファイルを見つけることができませんでした。私は本当に私は新しいLinuxカーネルをインストールする必要はありません望んでいる。 :)
ありがとうございます。単一のCPUにpthread
をピン留め
とにかくあなたの問題は表示されません。 lib呼び出しに時間がかからない場合、lib呼び出しが中断する可能性は少なくなります。 libコールに非常に時間がかかる場合、割り込み時間は重要ではありません。 libコールが 'ちょうどいい'の場合は、割り込み時間が重要ではない割合になるようにそれらをたくさん作ってください。割り込みを無効にする?他に誰も実行していない不自由なOSでパフォーマンスを測定しようとすると、どのような点がありますか?プリエンプションを無効にすることは簡単です。アイドル状態のシステムでテストを実行するだけです。準備ができていない場合は、プリエンプションはありません。 –