User-Space Hinting將助力AMD霄龍處理器實現更好的任務性能發揮
趕在下周於愛爾蘭都柏林舉辦的Linux Plumbers Conference 會議之前,AMD 還計劃研討如何改進“拆分末級緩存”(LLC)架構的調度程序。作為AMD Linux 服務器團隊的一名工程師,K. Prateek Nayak 剛剛發布了一系列補丁,並且專注於用戶空間提示(User-Space Hinting)的任務放置計數。
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 內核中的準備。