英特尔工程师黄英今天发布了一个补丁集,在migrate_pages函数中实现了页面迁移的批量TLB刷新,在性能优化方面表现突出。
IT之家了解到migrate_pages负责Linux内核中的页面迁移,页面迁移可以指定一个进程的页面到其指定的内存节点。其初衷是通过将页面移动到进程所在的NUMA节点来减少内存访问的延迟。后来,这个功能被用于内存调节和内存热插拔场景。
在migrate_pages函数接收多个页面后,英特尔工程师努力支持TLB刷新和复制的批处理,同时减少处理器间中断(IPI)的数量。
TLB可以被认为是一个宝库。数据缓存地址(虚拟地址或物理地址)和数据。缓存TLB虚拟地址及其映射的物理地址。根据虚拟地址,TLB查找缓存。它别无选择,只能根据虚拟地址来查找。因此,TLB是一个虚拟缓存。
migrate_pages函数用于将流程中的所有页面移动到另一组节点。该补丁系列还允许在至强可扩展蓝宝石Rapids处理器上使用英特尔数据流加速器(DSA)。
安装补丁后,migrate_pages测试结果显示,测试期间IPI下降了99.1%,每秒成功迁移的页面数增加了291.7%。