# 投稿 [COSCUP](https://blog.coscup.org/2025/04/coscup-2025-call-for-proposals.html) * 📅 2025-04-19 — 徵稿開始 CfP Opens * 📅 2025-05-10 — 徵稿截止 CfP Deadline * 📅 2025-06-24 — 錄取/未錄取通知寄送 Notification of Acceptance * 📅 2025-07-09 — 議程表公布 Agenda Announcement * 🎉 2025-08-08 — 前夜派對 Pre-Party * 📢 2025-08-09 - 2025-08-10 — COSCUP 2025 [fb 貼文](https://www.facebook.com/share/p/14DST7Qvtpi/) * 分享不同想法,為什麼要把 scx 放到 user-space * 提及前人的貢獻、演化、地雷,我們目前做了什麼 * 新 tech # [Draft](https://pretalx.coscup.org/coscup-2025/talk/review/YC7CET8BQEPQ8NZGDWCR7RZBSCAZLPN9) :::warning 2025-05-10 — 徵稿截止 CfP Deadline ::: ### 投稿標題/ 翻譯成英文的標題 <s>從 eBPF 到 SCX:實作自己的開源排程器</s> 藉由 `sched_ext` 實作客製化 Linux CPU 排程器 --- ### 摘要/ 翻譯成英文的摘要 :::spoiler * 介紹 scx 原理 (可能會提到eBPF) * 跟 EEVDF 的差異 * 為什麼要把 scx 放到 user-space * 提及前人的貢獻、演化、地雷,我們目前做了什麼 * 這是一個新 tech ::: [patch](https://lore.kernel.org/bpf/CAHk-=wg8APE61e5Ddq5mwH55Eh0ZLDV4Tr+c6_gFS7g2AxnuHQ@mail.gmail.com/) "I'm also not a believer in the argument that has been used (multiple times) that the BPF scheduler would keep people from participating in scheduler development." - Linus Torvalds <s> 自 Linux kernel v6.12 起,核心正式支援 sched_ext (SCX) 框架。SCX 建立在 scheduling class 架構之上,透過 eBPF 技術,允許以使用者空間 (user space) 撰寫自訂排程器。此外,SCX 不限於 C 語言開發,在官方所提供的範例中也不乏由 RUST 打造的排程器。多語言支援與無須修改核心原始碼的特性,不僅實踐開源精神,也降低開發門檻,讓更多人能參與底層系統架構的設計。 本議程面向對 Linux 核心、系統效能及排程策略有興趣的開發者與開源貢獻者,內容分為三個部分: - 解析 SCX 架構與核心設計理念:說明 SCX 與 CFS/EEVDF 的差異和共存,及其在開源開發流程中的定位。 - 剖析社群開發的 SCX 實作:介紹目前已由社群開發的 SCX 範例,包括可切換的 FIFO/RR 排程器,以及透過機器學習預測負載、優化 task migration 的策略。 - 實作經驗與優化策略:分享團隊目前在 SCX 上的擴充與調整,並討論實作過程中的技術細節與問題。 SCX 的出現是開源系統開發的重要里程碑,使開發者能以熟悉的方式參與核心子系統的改進。透過本次分享,我們期望能讓更多人了解 SCX 的技術潛力,並加入開源排程器開發的行列。 </s> Linux v6.12 引入的 `sched_ext` (scx) 允許開發者藉由 eBPF,在使用者空間動態載入或抽換 CPU 排程器。本議程嘗試結合機器學習,利用 BPF map 彙整 CPU 排程相關事件資料,依據推論動態調整 time slice、CPU affinity 與 task migration。預計探討以下: * 回顧 CFS/EEVDF * `sched_ext` 的創新和相關機制 * 從客製化的 FIFO/RR 排程器到機器學習,並引入負載預測機制 --- ### 目標觀眾/對象觀眾 關注於 Linux 核心最新技術者,特別是想知道 Meta 和 Google 一類公司為何投入 `sched_ext` 發展,以及客製化的 CPU 排程器能夠解決什麼問題。 --- ### 為何這個提案適合 COSCUP? <s>SCX 框架以 GPL 授權的 Linux 核心為基礎,透過 eBPF 技術實現使用者空間排程器開發,無須修改 Linux 核心原始碼即可參與核心設計。此架構降低貢獻門檻、促進知識共享,具體實踐開源文化中「自由參與、共創共用」的精神,讓更多開發者能以熟悉的語言參與底層系統優化,與 COSCUP 提倡的開放理念高度契合。</s> `sched_ext` (SCX) 建構於 Linux 核心,運用 eBPF,允許開發者在使用者空間、以熟悉的程式語言,撰寫客製化的 CPU 排程器,而無須更動核心原始程式碼,此設計不僅大幅降低貢獻門檻,也落實「自由參與、共同創作與共享」的精神,使更多人得以投入底層系統的持續改進。 --- ### else 演講語言 [參考資料](https://github.com/sched-ext/scx?tab=readme-ov-file#additional-resources) ![image](https://hackmd.io/_uploads/ByNqWlbggl.png)