Linus Torvalds完善Linux內(nèi)核管道代碼令大型CPU系統(tǒng)受益
如果使用GNU Make作為構(gòu)建系統(tǒng),則Linux 5.6的并行構(gòu)建時(shí)間將大大縮短。
Linus Torvalds本人圍繞內(nèi)核的管道代碼進(jìn)行了更改,以在讀取或?qū)懭霑r(shí)使用排他等待。盡管這對(duì)于傳統(tǒng)或通用的數(shù)據(jù)管道來(lái)說(shuō)沒(méi)有多大意義,但是GNU Make作業(yè)服務(wù)器是一個(gè)很大的受益者,因?yàn)樗蕾?lài)管道來(lái)限制并行性。
在Linus Torvalds編寫(xiě)的簡(jiǎn)化測(cè)試用例中,此補(bǔ)丁使得測(cè)試程序上的上下文切換次數(shù)從1100萬(wàn)下降到僅120萬(wàn),這無(wú)疑會(huì)受到歡迎,因?yàn)闊o(wú)數(shù)的安全緩解措施使英特爾方面的上下文切換性能降低了不少。此外,消耗的系統(tǒng)時(shí)間也只是原先時(shí)間的一小部分。
英特爾的Josh Triplett已測(cè)試并確認(rèn)了Linus補(bǔ)丁。 “我在幾個(gè)不同的系統(tǒng)上測(cè)試了管道修復(fù)補(bǔ)丁(切換到專(zhuān)用隊(duì)列),本月沒(méi)有任何問(wèn)題。”包括并行制作和其他使用基于管道的Job Server 大型(〜100 CPU)系統(tǒng)上的并行構(gòu)建時(shí)間。