/proc/interrupts
さまざまなCPU分離(IRQおよびプロセス)構成で指定されたワークロードを実行している間に、ローカルタイマー割り込みの数について報告された値(合計)に大きな違いは観察されませんでした。/proc/stats
ローカルタイマ割り込みの数は約20%です。
答え:私が知る限り、current_clocksource = hpetの場合、ローカルタイマー割り込みはコンパレータによって生成され、コンパレータは=比較(> =の代わりに)の後に割り込みをトリガします。これにより、「忘れ」により割り込みが発生します。過負荷がかかりました。現在時刻が目標値を超えたためです。これにより、与えられたワークロードに対してLOCが多いほど良いと結論づけました。 (落下事故減少)
B.私が知っている限り、システムはイベントを「結合」し、Timerslack_ns時間内に発生する複数のイベントに対する割り込みをトリガーできます。これから、私は与えられたワークロードと与えられたtimeslack_nsについてLOCが少ないほど良いと結論付けました。 (システムにさらにマージの機会を提供)
私の知識が時代に遅れているか、正しく適用されていませんか? (Linux 5.4で実行)
「忘れた」タイマーイベントの数を決定する方法は?
「マージされた」タイマーイベントの数を決定する方法は?
最後に、同じ作業負荷を考慮し、消費電力に関する考慮事項を無視し、待ち時間とスループットのみを考慮します(たとえば、これがやや矛盾していることがわかっているため、CPU分離テストを実行した理由です)。どの構成を好むべきですか?総(大)LOC割り込み数とはるかに少ない割り込みを提供するものは何ですか?
同じ状況で無効にしようとしましたが、
kernel.timer_migration
重要な変化を見つけられませんでした。私はこれが私のIRQとタスクが適切にマーシャリングされたという証拠だと思います(タイマーの移行は不要=>スレッドの移行は不要)。しかし、私が間違っている可能性があり、正しいデータセットを読み取ることができない可能性があります。