2011-12-22 6 views
2

2.6.39.1 64ビットLinuxでの高解像度タイマーのサポートを有効にしようとしています。これを行うには、最初に.configファイルにCONFIG_HIGH_RES_TIMERS=yを設定します。64ビットLinuxでの高解像度タイマーのサポート

また、grep HZ .configの出力は次のようになります。

# CONFIG_RCU_FAST_NO_HZ is not set 
CONFIG_NO_HZ=y 
# CONFIG_HZ_100 is not set 
# CONFIG_HZ_250 is not set 
# CONFIG_HZ_300 is not set 
CONFIG_HZ_1000=y 
CONFIG_HZ=1000 
CONFIG_MACHZ_WDT=m 

ただし、次のコマンドの出力には、カーネルを再コンパイルした後、予想通り1 nsecではありません。

cat /proc/timer_list |grep resolutionプリント:.resolution: 999848 nsecsまた

cat /proc/timer_list |grep handler出力:

event_handler: tick_handle_periodic、代わりにevent_handler: hrtimer_interrupt

の私はhrtimerを用いた実験を実行したとき、私は明らかな結果でナノ秒の精度を見ていません。

また、Linuxカーネルタイマー割り込み頻度の決定に役立つhereというCプログラムを実行しようとしました。次のようにCプログラムの実行結果は次のとおりです。

kernel timer interrupt frequency is approx. 766 Hz

私は、高分解能タイマーのためのハードウェアサポートを持っている、私は信じて、Dell Poweredge T710に取り組んでいます

私が見逃しています(?)任意のステップ?どこが間違っていたのですか?

ありがとうございます!

+0

起動したカーネルの設定が、作成したと思われるものと一致していることを再度確認します。 'zcat /proc/config.gz | grepのCONFIG_HIGH_RES_TIMERS' –

+0

@BrianCain: '/ブート>猫の設定-2.6.39.1 | grepをHIGH_RES' CONFIG_HIGH_RES_TIMERSことが期待される精度を見ないように自然なことですので、= Y – user745878

+0

スケジューラは、それほど頻繁に、すべてを実行します。 –

答えて

2

私は同じ問題を抱えていました。私は間違いなく常に多くのカーネルオプションを設定した"failsafe"モードにブートしたことが判明しました。そのうちの1つは"highres=off"でした。

確かに確かに/proc/cmdlineをチェックすると役に立つかもしれません。

関連する問題