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に取り組んでいます
私が見逃しています(?)任意のステップ?どこが間違っていたのですか?
ありがとうございます!
起動したカーネルの設定が、作成したと思われるものと一致していることを再度確認します。 'zcat /proc/config.gz | grepのCONFIG_HIGH_RES_TIMERS' –
@BrianCain: '/ブート>猫の設定-2.6.39.1 | grepをHIGH_RES' CONFIG_HIGH_RES_TIMERSことが期待される精度を見ないように自然なことですので、= Y – user745878
スケジューラは、それほど頻繁に、すべてを実行します。 –