私は(何よりも)HZ速度とプリエンプションモデルの調整を含む電話のコアを最適化する作業をしています。
当初、カーネルはデフォルトの250HZと自発的なプリエンプションでコンパイルされました。ループテスト現在表示されている最大遅延は次のとおりです。5859、これは良いですが、最適ではありません。理想的には3000未満であることを望むので、より深く掘り下げることにしました。
しかし、混乱しているのは、実際のタイマー割り込みの頻度を取得しようとしているときです。
cat /proc/interrupts | grep LOC ; sleep 10; cat /proc/interrupts | grep LOC
わかりました。
LOC: 212 370 92 81 Local timer interrupts
LOC: 212 370 92 81 Local timer interrupts
したがって、私の値は変わりません(2行目は250ずつ増やす必要があると思います)。
そして説明通りに測定しようとするとここ、私は得る
kernel timer interrupt frequency is approx. 2518 Hz
正しく計算する方法についてのアイデアはありますか?
音声カーネル最適化(RTC / SLAB / IOスケジューラ)に関する他の提案はありますか?
修正する:次へ追加
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_DEBUG_PREEMPT=y
私の遅延時間を次に短縮しました。
T: 0 ( 4628) P:80 I:10000 C: 4059 Min: 13 Act: 33 Avg: 69 Max:
3634
私はまだ改善する方法を探しています。