英特爾即將推出SST補丁修復性能損失超10%的問題
Speed Select Technology是英特爾推出的一套電源管理解決方案,特點是能夠根據用戶工作負載而調節頻率和管理內核優先級,以達成性能與效率的雙贏。尷尬的是,正如英特爾自家工程師所觀察到的那樣,在啟用了該模式的基準測試中,SST竟然可能導致超過10%的性能下降。儘管未說明對實際工作負載的影響有多大,但此事還是引發了相當高的關注。
資料圖(來自:Intel官網)
工程師解釋稱,問題源於Linux PCI 接口導致的延遲,因其在映射期間搜索了連接到系統的數百個PCI 設備。
雖然難以理解這里為何設計數百個PCI設備,但英特爾SST確實是一套相當複雜的解決方案,並且僅可在基於至強處理器的平台上使用(主流消費級酷睿產品線與之無緣)。
在找到問題根源之後,英特爾已承諾將很快通過固件更新的形式進行修復。打補丁的原理也相當簡單,即利用緩存數據來提速搜索過程。
以下是Linux內核郵件公告(LKML)中的消息摘要:
我們觀察到一些高性能基準測試在內核中耗費了更多的時間,具體取決於它們正在執行的CPU 數據包,且可能導致超過10% 的顯著差異。
SST 本該提升這些基準測試的服務優先級,以帶來更高的並行運行線程效能,但這種服務級別的變動又導致了需要訪問Intel Speed Select PCI 設備的MMIO 區域。
1 – Intel SST -概述(via)
這種從CPU到PCI設備實例的映射,使用了標準的Linux PCI接口——即pci_get_domain_bus_and_slot()。
此函數執行抵達PCI 設備的線性搜索,但由於測試平台上擁有100 多個PCI 設備,結果導致基準測試的快速路徑代價異常高昂。
2 – Inter SST -設置(via)
由於這裡的PCI 設備和功能都是相對固定的,因而Intel SST 能夠在實際執行時緩存CPU 到PCI 的設備信息,從而在再次訪問時顯著提升相關基準測試的性能。
據悉,英特爾在2019 年的Cascade Lake 至強處理器平台上隆重介紹了非常通用的SST 技術,並且提供了包括設置核心優先級、基礎始終速率等在內的多種選項。
不過正如上文所述,SST功能需要在固件中實現、並由處理器的電源控制單元(PCU)來執行。至於更多細節,還請移步至英特爾官網(傳送門)查看。