Linus Torvalds更新Linux內核管道代碼
從Linux 5.6開始,對于那些使用GNU Make作為其構建系統(tǒng)的用戶,并行構建的時間將快得多。
Linus Torvalds本人圍繞內核的管道代碼進行了更改,以在讀取或寫入時使用排他等待。盡管這對于傳統(tǒng)或通用的數(shù)據(jù)管道來說沒有多大意義,但是GNU Make作業(yè)服務器是一個很大的受益者,因為它依賴管道來限制并行性。
在Linus Torvalds編寫的簡化測試用例中,此補丁使得測試程序上的上下文切換次數(shù)從1100萬下降到僅120萬,這無疑會受到歡迎,因為無數(shù)的安全緩解措施使英特爾方面的上下文切換性能降低了不少。此外,消耗的系統(tǒng)時間也只是原先時間的一小部分。
英特爾的Josh Triplett已測試Linus補丁,并確認了:“我在幾個不同的系統(tǒng)上測試了管道修復補丁(切換到專用隊列),本月沒有任何問題。”該補丁大大改善了大型(〜100 CPU)系統(tǒng)上的并行構建時間,包括并行make和使用基于管道的jobserver的其他事物。“