核心版本資訊

本頁面會摘要說明各核心版本的主要功能,並提供其他資訊的連結。

Kernel 6.12 新功能

本節說明 Kernel 6.12 的新功能。

記憶體配置剖析

瞭解記憶體用量的關鍵在於知道分配的位置。Kernel 6.12 包含名為「記憶體配置剖析」 (設定中的 CONFIG_MEM_ALLOC_PROFILING) 的新記憶體配置歸因系統。透過記憶體配置剖析,每項配置都會歸因於專屬來源行,因此可以快速找出配置問題。此外,記憶體配置分析功能還可:

  • 在工程階段使用,但可透過標準 GKI 映像檔取得。

  • 可以使用 sysctl.vm.mem_profiling 開機參數啟用。

  • 適用於核心內和載入的模組。

透過零複製和多重讀取功能,加快 io_uring 速度

在核心 6.12 中,statsdlogd 模組會使用 sendfile 零複製,提升效能。

此外,這個核心版本會實作多重讀取,單一讀取作業可同時擷取多個資料片段,進而提升效能。

改善 Berkeley Packet Filter (BPF) 功能和支援

在核心 6.12 中,BPF 工具鍊已移至支援 CO-RE 和多項現代功能。此外,新的 BPF 載入器可讓 AOSP 程式使用新式 BPF。

Proxy 執行

透過 Proxy 執行,排程器可從高優先順序程序借用 CPU 週期,以復原低優先順序程序持有的鎖定。這項功能可減少優先權反轉問題。

Kernel 6.6 新功能

本節說明 Kernel 6.6 的新功能。

Rust 支援

多個核心 6.6 專案使用 Rust。

每個虛擬記憶體區域 (VMA) 的鎖定

Kernel 6.6 使用每個虛擬記憶體區域的鎖定,解決 mmap_sem (舊稱 mmap_lock) 的爭用問題。因此,使用大量執行緒的應用程式啟動時間最多可縮短 20%。

最早符合資格的虛擬期限優先 (EEVDF) 排程器取代 CFS

EEVDF 會取代完全公平排程器 (CFS),以便更妥善地平衡短期和長期執行工作之間的 CPU 存取權。

減少讀取副本更新 (RCU) 回呼的耗電量

RCU_LAZY 選項會使用以計時器為準的 RCU 回呼批次處理方法,以節省電力。對於負載較輕或閒置的系統,這個選項可減少 5% 至 10% 的耗電量。

更完善的 ZRAM 記憶體壓縮功能

新的 CONFIG_ZRAM_MULTI_COMP 建構設定可讓 ZRAM 使用三種替代演算法之一,重新壓縮頁面。這項重新壓縮作業會進一步縮減壓縮記憶體,為進行中的工作提供更多可用空間。

Kernel 6.1 新功能

本節說明 Kernel 6.1 的新功能。

透過核心控制流程完整性 (KCFI) 加快安全防護速度

KCFI 會取代控制流程完整性 (CFI),進而降低執行階段成本,且不會產生建構時間成本。與 CFI 相比,KCFI 的執行階段成本較低,因此可在更多位置啟用,特別是追蹤點和供應商掛鉤。

除了 KCFI 之外,核心 6.1 還導入多項安全功能,例如嚴格的memcpy邊界檢查和直線推測攻擊緩解措施。

如要進一步瞭解 KCFI,請參閱「核心控制流程完整性」。

多代 LRU (MGLRU)

核心 6.1 已新增 MGLRU,可更準確地判斷實際使用的頁面,進而改善記憶體管理。這項改善措施可減少系統記憶體不足時停止應用程式的需求。此外,這項更新也提升了整體裝置的回應速度,進而改善使用者體驗。

MGLRU 的實作方式也包括支援新的 RCU 安全楓樹,在某些情況下,可用於取代紅黑樹 (rbtree)。使用 RCU 安全的楓樹時,由於足跡較小且沒有鎖定,因此可提升效能。

如要進一步瞭解 MGLRU,請參閱「多代 LRU」。

時段設定

維護及更新排程器是改善核心的關鍵。6.1 版的 Kernel 更新包括:

  • 新增叢集感知排程,可遷移至共用 L2 快取的 CPU 核心,進而提升效能。
  • 移除不必要的能源邊際啟發式演算法。這項更新會限制部分遷移作業,藉此提升能源使用率,最多可達 5%。
  • 改善負載平衡,縮短喚醒延遲時間。
  • 將 RCU 快速寬限期移至即時 kthread。這項更新大幅減少了 RCU 相關的延遲異常值。

圖形

Kernel 6.1 含有 dma-buf 的新方法,可匯出及匯入同步處理檔案,符合 Vulcan Video API 的需求。

新的 futex_waitv() 方法可同時等待多個 futex,簡化從其他平台移植遊戲的作業。

偵錯工具

在偵錯建構版本中使用核心並行 SANitizer (KCSAN),找出核心程式碼中的競爭條件。

此外,您也可以使用 Kernel Memory SANitizer (KMSAN) 找出核心中未初始化的值。

改善 ARM64 支援

6.1 核心為 ARM64 架構帶來多項改善,包括:

  • 支援 ARMv8.6 計時器擴充功能
  • 支援 QARMA3 指標驗證演算法
  • 初步支援 ARMv9 Scalable Matrix Extension (SME)
  • 改善替代功能修補作業,縮小核心映像檔大小