本文意在透過閱讀 Linux 核心程式碼理解 CPU Scheduler 機制,並配合 Linux 核心設計: Scheduler 系列 補充以及記錄我個人的疑問和心得。
以下程式碼為 Linux 核心 v6.8-rc7 版本,本篇專注於 EEVDF。
由於 EEVDF 中存在許多基於 CFS 的機制,如 nice level 以及 vruntime,本文在說明這些機制時將以 CFS 角度說明,若不了解 CFS 以及 EEVDF 機制,建議先行閱讀 Demystifying the Linux CPU Scheduler 閱讀筆記 2024。
後續發現,由於 EEVDF 近日才被引進,許多改進仍在進行中,建議讀者在有一定理解後可以參考 Yiwei Lin 以 Patch 追蹤的方式來跟進和驗證 EEVDF 之實作。
為了編撰 Demystifying the Linux CPU Scheduler 用於紀錄我對 EEVDF Patches 的理解 :EEVDF notes