2011-02-10 21 views
7

レイテンシに敏感なアプリケーションを実行する必要があり、タイマーの解像度を1000Hz以上に変更するように求められました。ネットで少し調べて、CONFIG_HZなどのページを見つけました。Linuxカーネルタイマーを変更する

しかし、ファイルには他にも関連する設定がいくつかありますので、設定を混乱させないようにしたいと思いますアップ。私は

$cat /boot/config-2.6.28-11-generic | grep HZ 
# CONFIG_HZ_1000 is not set 
# CONFIG_HZ_300 is not set 
CONFIG_MACHZ_WDT=m 
CONFIG_NO_HZ=y 
CONFIG_HZ=250 
# CONFIG_HZ_100 is not set 
CONFIG_HZ_250=y 

ので、「#1 CONFIG_HZ_1000が設定されていない」二行目をして、ここでいくつかの出力を掲示しています、1000Hzをがサポートされていないことを意味ですか? CONFIG_HZ-250ではなくCONFIG_HZだけを変更する必要がありますか?

PS:Geodeプロセッサで2.6カーネル(ubuntu jaunty)を使用しています。

EDIT1:デスクトップマシンと開発マシンのhttp://www.advenage.com/topics/linux-timer-interrupt-frequency.phpからコードを実行しました。このコードは、システムがどれくらいの速さでタイマーを維持できるかを正確に測定するものです。出力は約183Hz(現像機で)でした。タイマーを変更することは意味がありますか?

答えて

14

あなたがKbuildのエキスパートでない限り、直接.configを編集しないでください(これは、あなたがKbuildのエキスパートではありません)。代わりにmake menuconfigまたはmake xconfigを実行して、メニューベースの構成システムを読み込みます。あるいは、make configは、ラインベースの設定プロセスを行います(ここでは、何を設定するかについて数百の質問がありますが、推奨されません)。関連するオプションは、「プロセッサの種類と機能」を「タイマの頻度」にします。

しかし、これは必ずしも必要ではないかもしれません。最近のLinuxでは、高解像度のイベントタイマー(CONFIG_HIGH_RES_TIMERS)を使用して、タイマーの周波数を上げなくても低レイテンシタイマーを達成することができます。ティックレスシステム(CONFIG_NO_HZ)では、タイマー周波数はまったく効果がありません。

一方、Geode CPUにはどのようなタイマーがサポートされているのかよくわかりません。さまざまなカーネル構成でcyclictestを実行して、低レイテンシのパフォーマンスを得るために必要なものを確認することができます。実行したテストでは、ディスパッチ待ち時間ではなく、ディスパッチ頻度が最大になるため、サイクリスト結果と比較すると面白いでしょう。 が本当にの遅延が必要な場合は、CONFIG_PREEMPT_RT patchsetも関心の対象です。

7

タイマー設定を変更するには、カーネルを再コンパイルする必要があります。テキストファイルではなく、標準メニュー構成ツールのオプションを変更します。

/boot/config...ファイルには、特定のカーネルバイナリにインストールされているものだけが表示されます。これは変更可能な設定ファイルではありません。

関連する問題