11 月 30 日消息,英特爾在今年 9 月啟動(dòng)了一次大規(guī)模的 Linux 補(bǔ)丁征集活動(dòng),對(duì)采用大小核設(shè)計(jì)的混合型 CPU 劃分任務(wù)類別,通過更加合理地分配任務(wù)改善這些 CPU 的 Linux 性能。本次“意見征集”活動(dòng)圓滿結(jié)束,英特爾于本周一發(fā)布了 22 個(gè)補(bǔ)丁。
這項(xiàng)工作的目的是為了提高英特爾第 12 代“Alder Lake”和第 13 代“Raptor Lake”處理器的性能和效率。鑒于之前圍繞引入 IPC 類進(jìn)行負(fù)載平衡的建議沒有收到任何強(qiáng)烈的反對(duì)意見,該項(xiàng)目移除了征求意見(RFC)的標(biāo)簽,下個(gè)階段目標(biāo)是整合到 Linux 的 Mainline 內(nèi)核中。
在混合型處理器上,不同類型的 CPU 的微架構(gòu)屬性導(dǎo)致它們具有不同的每周期指令(IPC)能力。在一些 CPU 上,高級(jí)指令的 IPC 優(yōu)先級(jí)可以更高。負(fù)載平衡器可以發(fā)現(xiàn)是否使用高級(jí)指令,并為運(yùn)行這些指令的任務(wù)優(yōu)先選擇具有較高 IPC 的 CPU。
IT之家了解到,硬件可以自由地將其指令集劃分為任意數(shù)量的類別。但其中必須提供一種機(jī)制來識(shí)別當(dāng)前運(yùn)行任務(wù)的類別,并告知內(nèi)核每一類任務(wù)在每一類 CPU 上的性能。
英特爾本周一發(fā)布的補(bǔ)丁集引入了任務(wù)類別的概念,明確了硬件實(shí)現(xiàn)所需的接口,修改了負(fù)載均衡器,并使用非對(duì)稱打包方式來更好地利用這些額外信息,以實(shí)現(xiàn)增強(qiáng)性能的目的。
自初代補(bǔ)丁發(fā)布以來,在代碼審查和測(cè)試的基礎(chǔ)上進(jìn)行了一些代碼改進(jìn)。CONFIG_SCHED_TASK_CLASSES 選項(xiàng)被重新命名為 CONFIG_IPC_CLASSES。這個(gè)補(bǔ)丁系列也放棄了 CONFIG_INTEL_THREAD_DIRECTOR 旋鈕。但其余的變化則基本是低級(jí)別的改動(dòng)。