# sched_ext
sched_ext は、eBPF を用いてカスタムの Linux スケジューリング方針を実装できるフレームワークであり、Linux にアップストリームされている([[@2026__TOCS__cache_ext - Customizing and Tracing the Page Cache with eBPF]] §8)。[[cache_ext]] はページキャッシュ版の sched_ext として着想され、複数の設計パターンを直接引用している。
- **struct_ops の利用例**: `struct_ops` はカーネルサブシステムの関数ポインタコールバックを eBPF で実装させる仕組みで、sched_ext はこの機構を用いてスケジューラを完全に eBPF 内で実装するか、複雑な決定をユーザ空間へオフロードできる。cache_ext の著者は、プロセス数がページ数より遥かに少なく、スケジューリングイベントもページキャッシュイベントより低頻度であるため、sched_ext のユーザ空間オフロードはプロセススケジューリングには有効でも、ページ退避には不適切だと指摘している。
- **セキュリティパターンの継承**: sched_ext は PID をプロセスの一意識別子として利用して安全性を確保するが、folio には PID のような一意識別子がないため、cache_ext はポインタベースの "valid folios registry" を新設した。また、誤動作するポリシーを強制排除するウォッチドッグ機構も cache_ext のフォールバック設計に反映されている。
- **運用モデルの継承**: root 権限を要するロード方式についても、sched_ext・ghOSt が採用する特権ポリシーローダ(systemd 経由の管理)を cache_ext は将来の解決策として参照している。
## 関連
- ソース: [[@2026__TOCS__cache_ext - Customizing and Tracing the Page Cache with eBPF]]
- 概念: [[eBPF]]
- エンティティ: [[cache_ext]]