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