
在 Linux 6.19 合并窗口大约一个月前,TIP 分支中已经排好队,优化了可重启序列“RSEQ”的退出到用户空间代码路径。
Intel Fellow、Linutronix 的 Thomas Gleixner 最近为优化可重启序列的退出到用户空间路径,即用户空间对每个 CPU 数据结构的有效访问和操作功能,工作了一系列补丁。
Gleixner 在邮件列表的补丁系列中解释道:
“TLDR:
– 退出到用户空间时,有大量的无意义 RSEQ 操作,这些操作在 glibc 切换到使用 RSEQ 之后,被一些人报告为可测量的影响。– 在调度器和退出用户空间时,热路径处理不理想。
本系列通过以下方式解决这些问题:
1) 将 RSEQ 工作限制在真正需要其实际条件。只有使用通用入口基础设施的架构才能获得全部好处。其他所有架构至少获得基本改进。
2) 基于适当的数据结构重新实现整个用户空间处理,并实际查看它对快速路径产生的影响。
3) 尽可能将 RSEQ 的实际处理移至退出路径的最新点。这完全内联到快速路径中,以限制其影响。
GNU C 库自今年早些时候的 Glibc 2.41 以来就使用了 RSEQ,因为之前的 Glibc RSEQ 实现几年前就需要重做。
今天,这些优化补丁已在 tip/tip.git 的 core/rseq 分支中排队。现在补丁已在 TIP 分支中,它们应该提交给即将到来的 Linux 6.19 合并窗口。
转自 Linux 6.19 To Optimize Exiting To User-Space For Restartable Sequences – Phoronix
Linuxeden开源社区