2016-03-21 5 views
0

私はintel rangeleyボードで作業しています。私は、Linuxカーネルをブートするのにかかる総時間を測定したいと思う。インテルボードでこれを実現する方法はありますか?インテリアレンジボード上のLinuxカーネルの合計ブート時間を測定する方法

+0

あなたはどのディストリビューションを使用していますか、つまり、Ubuntuには素晴らしいプロファイリンググラフが付いています。 – xvan

+0

ブートチャート(http://www.bootchart.org/)がありますが、initの起動後に起動すると思います。 –

+0

ブライアンケインありがとう、フル起動時間を得る方法はありますか – anikhan

答えて

2

rdtscを試してみてください。インテルによるREF手動のinsnプロセッサがリセットされるたびに

プロセッサは単調に各クロックサイクルと0にリセットをタイムスタンプカウンタMSR をインクリメントします。 タイムスタンプカウンタの動作の詳細については、 の詳細については、インテル®64およびIA-32 アーキテクチャソフトウェア開発者マニュアル、第3B巻の第17章の「タイムスタンプカウンタ」を参照してください。

通常TSCのみ2つの時点間の相対的な測定のために使用される

、またはタイムソースとして(マニュアルへのリンクについてタグWikiを参照)。絶対値は明らかに意味があります。実際に動作している節電クロックの速度に関係なく、CPUの定格クロック速度に目を向ける。

マルチコアシステムのブートCPUからTSCを確実に読み込む必要があります。他のコアは、Linuxがそれらを起動するためのプロセッサ間割り込みを送信するまで、TSCを起動していない可能性があります。 Linuxは、gettimeofday()がTSCを使用するため、TSCをブートCPUのTSCに同期させることがあります。 IDK、私はちょうど私が自分でこれをやりたいのかどうかを確認するだろうものを書き留めている。

タイムソースとして使用するときにカーネルがTSCを変更するのを避けるために、予防策を講じる必要があります。おそらく、Linuxに別の時間ソースを使用させるブートオプションを介して。

関連する問題