趕在下周於愛爾蘭都柏林舉辦的LinuxPlumbersConference會議之前,AMD還計劃研討如何改進“拆分末級緩存”(LLC)架構的調度程序。作為AMDLinux服務器團隊的一名工程師,K.PrateekNayak剛剛發佈一系列補丁,並且專註於用戶空間提示(User-SpaceHinting)的任務放置計數。
Phoronix 指出:最新工作進展表明 AMD 打算改進 Linux 內核調度程序,並將之用於 LLC CPU 項目、以期改進該公司的 EPYC(霄龍)服務器處理器。
由 Linux 內核公告郵件列表(LKML)上的標記可知,新補丁仍處於“實驗性”和“意見征求”階段。
當前的 API 設計,隻能設置較為低級的提示,且並未面向公眾提供 —— 僅用於測試和演示 User-Space Hinting 在應用程序調度方案 / 最佳放置決策方面的功效。
若調度程序認為遵循提示將使系統處於次優狀態,則可自由地忽略用戶空間提示。
作為對比,當今調度程序使用的啟發式方法 —— 例如 WF-SYNC 標記、wake_wide()邏輯等 —— 仍存在無法準確推斷工作負載的性質的短板。
換言之,調度程序不明白是否最好將一組線程合並、還是拆分開來。由於無法推斷工作負載的性質,或導致一系列不準確的放置決策,進而對工作負載的性能造成不利影響。
對於具有拆分 LLC 的系統(例如 AMD EPYC 霄龍服務器平臺),其負面影響會被嚴重放大。
好消息是,該系列新補丁包括在本地組中存在非活動核心時、選擇父級附近的任務放置的功能。該過程負責決定繼續使用包含最少利用率的組來擴展工作負載,並檢查其它可能的提示。
其實早在去年,英特爾 Linux 內核團隊的工程師 Peter Zijlstra,也曾介紹過一個高級提示框架。
其旨在幫助內核調度程序的任務序列能夠應對日益復雜的 CPU 和工作負載,而當前狀態下的 User-Space Hinting 則是通過 prctl() 接口完成的。
最後,英特爾 Xeon Ice Lake 平臺上的初步測試結果表明,EPYC 服務器有望在 Hackbench、Schbench、Tbench 等各類工作負載上迎來性能的有效改進。
不過由於該系列補丁仍處於實驗階段,推測最終用戶需要等待數月,才會看到它已做好被添加至 Linux 內核中的準備。