Arm本周向Linux内核提交了一组初始补丁,目标只有一个:让高核心数处理器在清理TLB时,别再动不动就"全员通知"。
这项技术叫TLBI Domains,简称TLBID。Phoronix发现了这组提交。它要解决的问题,藏在每一颗多核CPU的日常里。
![]()
TLB失效,为什么在高核心数下变贵了
TLB是处理器用来缓存虚拟地址到物理地址转换结果的结构。操作系统一旦需要让部分地址映射失效,通常得向多个CPU核心发送TLB失效指令。
核心数少的时候,这点开销不算什么。核心数一多,如果每次都对整个系统执行TLB失效,同步和通信开销就会明显冒出来。
TLBID的核心变化很直接:允许操作系统只针对部分CPU核心执行TLB失效,不必每次都覆盖整个系统。
内核怎么知道该通知谁
Arm正在为Linux内核完善相关支持,让内核能够根据进程实际运行过的CPU核心发送TLBI指令,仅让相关CPU执行TLB清理。
这套机制主要瞄准高核心数Arm服务器处理器。对于在大量CPU核心之间跑来跑去的服务器工作负载,避免不必要的全系统TLB失效,有望减少处理器之间的同步开销。
不过,Arm目前尚未公布TLBID的实际性能测试数据,具体收益仍有待后续硬件和软件验证。
光有内核还不够
除了Linux内核本身,ARM64架构的TLBID支持还需要编译工具链提供相应的指令支持。目前相关工作依赖:
- LLVM 23及更新版本
- GNU Binutils 2.46及更新版本
Arm此次提交的补丁仍属于早期开发阶段。随着相关架构规范、编译器以及Linux内核支持逐步完善,未来搭载TLBID的高核心数Arm服务器处理器,有望利用更精细的TLB失效机制,降低大规模多核心系统中的内存管理开销。
对跑在Arm服务器上的大规模工作负载来说,这是一条从内核底层开始铺的路。眼下能确认的是补丁已经提交,工具链门槛已经摆明,剩下的等实测数据说话。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.