周五发出了一个拉取请求,该请求可能会为即将推出的 Linux 6.15 内核提供,以将 ARM 的内核入口代码从某些特定于架构的 Assembly 转换为使用通用入口代码路径。这意味着更多的统一和将一些 Assembly 代码转换为 C,但它也对性能造成了一些影响。
与正在进行的 ARM64 Linux 内核代码工作类似,32 位 ARM 内核代码也一直在使用内核中的通用入口代码。Linaro 的 Linus Walleij 一直在寻求 ARM 通用入口工作,并在周五发出了一个拉取请求,希望实现此更改。
Linus Walleij 总结了将 ARM Linux 内核转换为使用通用入口代码的努力:
主要优点:
– 使用与 x86_64、RISCV、S390 和 Loongarch 相同的通用入口,可能很快就会使用 ARM64。
– 将 ARM 从过时的上下文跟踪器入口点 user_enter_callable() 和 user_exit_callable() 中移出,现在仅由 ARM、CSKY 和 Xtensa 使用。
– 解决过程中的一些 lockdep 警告。
– 将一些汇编转换为 C。
主要缺点:
– 略微增加了系统调用开销,在测量中约为 6%。
对于对 ARM Linux 通用入门工作感兴趣的人,请参阅此 pull。我们将看看它是否能够进入下一个内核周期。
转自 ARM Linux Kernel May Shift To Generic Entry Code: Less Assembly But Lower Performance – Phoronix