AMD 工程師正在努力為分離式 LLC(最後一級緩存)處理器設計更好地優化 Linux 內核的調度程序,從而使他們的 EPYC 服務器處理器受益。
在下週在都柏林舉行的 Linux Plumbers Conference (LPC) 會議之前,AMD 將領導一場關於增強拆分 LLC 架構的調度程序的討論,AMD Linux 服務器團隊的 K Prateek Nayak 發布了關於添加用戶的早期補丁系列-任務放置的空間提示。
補丁系列被標記為“請求評論”和“實驗性”,但它添加了低級旋鈕,用於根據用戶空間提供的提示影響調度程序對用戶空間任務的放置。
當前的 API 設計是實驗性的,只能設置低級提示。此 API 不用於公共使用,僅用作測試和演示提示在幫助調度程序根據應用程序提供的要求做出最佳放置決策方面的功效的手段。如果調度程序認為遵循提示將使系統處於次優狀態,則可以自由地忽略用戶設置的提示。
-動機
目前調度程序使用的啟發式方法,例如 WF_SYNC 標誌、wake_wide() 邏輯等,在準確推斷工作負載的性質方面是否存在不足。最好將一組線程合併在一起,或者將它們分開。無法推斷工作負載的性質可能會導致一系列不正確的放置決策,這可能對工作負載性能造成不利影響。對於 AMD EPYC 等具有拆分 LLC 的系統,懲罰似乎很嚴重。
一年前,英特爾 Linux 內核團隊的 Peter Zijlstra 還建議可能需要一個高級提示框架幫助內核調度程序在日益複雜的處理器和工作負載中分配任務。 AMD 初始補丁系列的提示之一是,如果本地組中有空閒內核,則能夠更喜歡將任務放置在靠近父級的位置,更喜歡使用利用率最低的組來分散工作負載,以及其他潛在的提示也在討論中。當前形式的用戶空間提示是通過 prctl() 接口完成的。
AMD 繼續加強他們在 Linux 內核上的工作,以更好地針對 EPYC 服務器工作負載進行優化。此外,AMD 工程師也一直在增加他們對 Ryzen Linux 客戶端的貢獻。
AMD 對用戶空間提示補丁的初步測試表明,對於測試的各種工作負載(如 Hackbench、 Schbench、Tbench 等。在 Xeon Ice Lake 上也進行了一些測試,對於某些工作負載,這種用戶空間提示可能是有益的。
同樣,目前的工作仍處於試驗階段,但將在下週的 LPC Dublin 上進一步討論,並且可能還需要幾個月的時間才能解決這個用戶空間提示,然後才能適合上游。感興趣的人可以在 內核郵件列表上找到當前的實驗性補丁.我肯定會關注這個 AMD 補丁工作,一旦看起來他們可能已經確定內核更改並得到所有關鍵內核利益相關者/供應商的同意,我會對其進行測試。