2011年2月15日火曜日

Nexus S kernel 1000Hz

今日はタイマ割り込みの周波数を調整してみる。Nexus SはデフォルトでHZ=256が設定されている、この値がどのように決定されたのかは知らないが、VM等では1000Hzあたりだと、取りこぼしが発生して時計が狂ったりとかあるらしい。歴史的に100-1000のあいだの値がデフォルトとして採用されているようであるが、Androidのkernel mod界隈では1000hzあたりを採用しているものが多い。

AndroidのようなOSでどのような効果があるのか試してみよう。割り込みが頻繁ということは、コンテキストスイッチに直接効いてくるので、やり過ぎは良くないのだろうけど。256って中途半端だよなぁ。ここは1000あたりで、アプリの挙動などを見ることにする。

arch/arm/Kconfig
default 1000 if S5P_HIGH_RES_TIMERS

make -j2 ARCH=arm CROSS_COMPILE=/home/somewhere/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-

defaultを修正して、すぐにビルド。バッテリ消費等を少しモニタしたいところですね。

dmesg | grep HZ
<6>[    0.000000] HZ[1000]

dmesgでHZの設定を確認。明日はVoodoo Sound Driverでも組み込んでみよう。128倍のover samplingとか?ちょっと期待。。

続報:
いまいち不安定。。rebootや固まることが多い。もうすこし調整してみる。

0 コメント:

コメントを投稿