IT之家 12 月 28 日消息,Linux Kernel 在數(shù)年前就已經(jīng)合并了可重啟序列(The Restartable Sequences,簡(jiǎn)稱 RSEQ),GNU C Library 已經(jīng)使用 RSEQ 對(duì)每個(gè) CPU 數(shù)據(jù)進(jìn)行更快的用戶空間操作。在明年推出的 Linux 6.3 中將會(huì)進(jìn)一步改進(jìn) RSEQ。
通過(guò)遞增每個(gè) CPU 計(jì)數(shù)器、修改每個(gè) CPU 自旋鎖、讀取 / 寫(xiě)入每個(gè) CPU 環(huán)形緩沖區(qū)等情況下避免原子操作(atomic operation,是指不會(huì)被線程調(diào)度機(jī)制打斷的操作),RSEQ 可以明顯優(yōu)化性能,從而提供出色的基準(zhǔn)測(cè)試結(jié)果。
主導(dǎo) RSEQ 大部分工作的 Mathieu Desnoyers 最近一直致力于擴(kuò)展 Restartable Sequences ABI ,并公開(kāi)了 NUMA node ID、mm_cid 和 mm_numa_cid 字段。
IT之家了解到,Desnoyers 在補(bǔ)丁介紹中表示:
NUMA node ID 允許在 libc 中實(shí)現(xiàn)更快的 getcpu (2)。
per-memory-map concurrency id (mm_cid) 允許用戶空間 per-cpu 數(shù)據(jù)結(jié)構(gòu)進(jìn)行理想縮放(向下或向上)。
內(nèi)存映射中分配的并發(fā) ID 可以通過(guò)調(diào)度程序跟蹤。而這個(gè)調(diào)度程序根據(jù)并發(fā)運(yùn)行的線程數(shù)、CPU 親和性(affinity)、應(yīng)用于這些線程的 cpuset 和邏輯核心數(shù)等等參數(shù)進(jìn)行判斷。
NUMA-aware concurrency id (mm_numa_cid) 與 mm_cid 類(lèi)似,不同之處在于它跟蹤與每個(gè) cid 相關(guān)聯(lián)的 NUMA node ID。
在 NUMA 系統(tǒng)上,當(dāng)用戶空間觀察到 NUMA 感知并發(fā) ID 與 NUMA 節(jié)點(diǎn)相關(guān)聯(lián)時(shí),它保證永遠(yuǎn)不會(huì)更改 NUMA 節(jié)點(diǎn),除非發(fā)生內(nèi)核級(jí) NUMA 配置更改。這對(duì)于在屬于 cpuset 的進(jìn)程或一組進(jìn)程被固定到屬于系統(tǒng) NUMA 節(jié)點(diǎn)子集的一組內(nèi)核的環(huán)境中運(yùn)行的 NUMA 感知 per-cpu 數(shù)據(jù)結(jié)構(gòu)很有用。
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。