日语/英语
github.com/shun159/scx_...
github.com/shun159/scx_...
SMT awareなスケジューリングをするときは以下のようにします:
1. BPFへローダからトポロジー情報の注入
→スケジューラが動作する前にユーザ空間からハードウエア構成を教えます.例えばどのコアはどのSMTペアですよとか
2. taskが実行すべきCPUのリストを決める
→これは1で計算したCPUを元に,set_cpumaskコールバックで実行する
3. CPU選びおよび起床
→タスクが実行可能状態になってselect_cpuとかenqueueがよばれます.SMT awareなCPUマスクからpick_idle_cpuで範囲内のCPUを探す.
SMT awareなスケジューリングをするときは以下のようにします:
1. BPFへローダからトポロジー情報の注入
→スケジューラが動作する前にユーザ空間からハードウエア構成を教えます.例えばどのコアはどのSMTペアですよとか
2. taskが実行すべきCPUのリストを決める
→これは1で計算したCPUを元に,set_cpumaskコールバックで実行する
3. CPU選びおよび起床
→タスクが実行可能状態になってselect_cpuとかenqueueがよばれます.SMT awareなCPUマスクからpick_idle_cpuで範囲内のCPUを探す.
どうするかはワークロードが実際どうなってるか確認したいところですが,最近追加された"scx_beerland"はそんなにまだデカくないし,SMTやfreqの制御もあるのでオススメです.
どうするかはワークロードが実際どうなってるか確認したいところですが,最近追加された"scx_beerland"はそんなにまだデカくないし,SMTやfreqの制御もあるのでオススメです.
devpost.com/software/xdp...
devpost.com/software/xdp...
というか、このコードをざっと見てももうアプリケーションレベルではやることなさそうに思いました…(budget いじるとかはやってそうですもんね)
というか、このコードをざっと見てももうアプリケーションレベルではやることなさそうに思いました…(budget いじるとかはやってそうですもんね)