HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のカーネルのタイマ割込み頻度を上げてみる

HTC Dreamのカーネルのタイマ割込み頻度をいじるとどうなるか試してみた。

HZについて

Linuxカーネルのタイマ割込み頻度はHZというマクロで設定されている。
通常、100〜1000ぐらいの値を設定する。
一般的に、この数値を上げると反応が早くなるが、CPU負荷が定常的に高くなると言われている。
カーネル2.6.25のデフォルト値(x86)は250で、サーバ機では100、デスクトップ機では250〜1000ぐらいを使う例が多い。

HTC DreamのHZ

HTC DreamではCONFIG_NO_HZ=yとなっており、アイドル時にタイマ割込み処理を行わない設定になっている。もともとdyntickと言われていた物が本家にマージされたものだ。
低消費電力優先の設定のようだ。
.config上はCONFIG_HZ=100になっているが、これはおそらく効いていないのだと思う。

1000Hzにトライ

CONFIG_HZ=1000にするとどうなるか試してみた。
まず、CONFIG_NO_HZ=nにする。
次に、CONFIG_HZ=1000にする。.configをCONFIG_HZ=1000に書き換えてもmake時に強制的にCONFIG_HZ=100に戻されてしまうので、kernel/arch/arm/Kconfigを書き直した。

1000Hzカーネルに入れ替えると、無事に起動する。ベンチマークテストの値は変わらない。
体感的には操作時の引っ掛かる感じが減ったような気がするが、良く分からない。
もう少し使い続けてみることにした。