本日 Linux カーネル メーリング リストに投稿された一連の「コメント募集」パッチは、(e)BPF プログラムとして実装される CPU スケジューラ ポリシーのサポートを実装します。
Linux カーネルでは、(e)BPF がカーネルのさまざまな領域に採用され続けています。間近に迫っている eBPF の追加の 1 つは、HID サブシステムに eBPF サポートが提供されることです。これにより、風変わりなハードウェアをよりタイムリーに処理し、冗長なドライバー チャーンを減らすことが期待されます。
Tejun Heo は本日、彼と他の数人のカーネル開発者による作業の一環として、eBPF スケジューラの作業を発表しました。 LinuxカーネルスケジューラのeBPFサポートにより、新しいスケジューリングポリシーの実験と調査が容易になり、カスタムBPFプログラムのロードを介してアプリケーション固有のスケジューラやその他のカスタマイズ可能なオプションが可能になり、変更のための無停止の方法を提供できると考えられています運用環境内でのスケジューリング ポリシー。
Google とメタの両方のエンジニア(Facebook) がこのイニシアチブの背後にあります。今日の RFC パッチ シリーズの結論として:
「Meta と Google はどちらも、過去数年間、スケジューラを使用してかなり多くの実験を行ってきました。Google は、ユーザー空間のスケジューリングを使用してさまざまなワークロードのベンチマークを行い、トレードによってパフォーマンスの勝利を達成しました。アプリケーション固有のニーズのための一般性. メタでは、まだ本番環境のワークロードに sched_ext を展開していませんが、予備実験では、sched_ext が大規模に展開された場合にパフォーマンスが大幅に向上することが示されています.さまざまな実験を行い、多くの重要なワークロード用にカスタマイズされたスケジューラを開発します。
最後に、Meta と Google は、sched_ext が、より広範なコミュニティがスケジューリングの問題空間を調査する方法を大幅に進化させ、カーネル内スケジューラの継続的な改善に力を与えると信じています。また、カスタム アプリケーションの対象を絞ったポリシーを有効にします。より簡単かつ迅速に実験できるようになります。ええと、未知の領域を探索し、必要に応じて緊急スケジューラの変更を展開します。同じことは、学界や専門産業を含め、スケジューラーで作業したい人にも当てはまります。 sched_ext は、Linux でのスケジューリングとパフォーマンスに関して、最先端の技術を推進します。”
今日のパッチの一部として、eBPF スケジューラ インフラストラクチャでの作業に加えて、サンプル スケジューラがあります。ほとんどのスケジューリング決定はユーザー空間に延期されます. 別のデモンストレーション スケジューラは、負荷分散の決定がユーザー空間で行われ、そのコードが Rust プログラミング言語で記述されるハイブリッド アプローチです.
この非常に興味深い提案の詳細については RFC パッチ シリーズ.