12 月 28 日消息,英特爾工程師 Huang Ying 今天發布了補丁集,在 migrate_pages () 函數中實現頁面遷移的批量 TLB 刷新,而且在性能優化方面表現亮眼。
IT之家了解到,migrate_pages () 在 Linux Kernel 中負責頁面遷移(Page Migration),而頁面遷移可以指定一個進程的頁面至其指定的內存節點上。它的設計初衷是為了:通過將頁面移動到該進程所處的 NUMA 節點上來減少內存訪問的延遲。后來內存規整和內存熱插拔等場景都使用了此功能。
在 migrate_pages () 函數接收到多個頁面之后,英特爾工程師努力支持批量處理 TLB 刷新和復制,同時減少處理器間中斷 (IPI) 的數量。
TLB(translation lookaside buffer)可以認為是一塊高速緩存。數據 cache 緩存地址 (虛擬地址或者物理地址) 和數據。TLB 緩存虛擬地址和其映射的物理地址。TLB 根據虛擬地址查找 cache,它沒得選,只能根據虛擬地址查找。所以 TLB 是一個虛擬高速緩存。
migrate_pages () 函數用于將進程中的所有頁面移動到另一組節點。該補丁系列還允許使用 Xeon Scalable Sapphire Rapids 處理器上的英特爾數據流加速器 (DSA) 。
在安裝補丁之后,migrate_pages () 測試結果顯示 IPI 在測試期間降低了 99.1%,每秒成功遷移的頁面數增加了 291.7%。
來源:IT之家