GCC 9编译器将在未来几周内发布,在众多新的和改进的特性中,有一个选项被设计用来帮助生成二进制文件,这些二进制文件对于实时补丁来说是友好的。在Linux 5.2内核中,在构建支持实时补丁的内核时,默认情况下将使用这个选项,这可能会导致性能有一些轻微的速度下降。
GCC 9引入了-flive-patching选项,该选项控制使用哪些优化来确保二进制文件不会出现错误(或产生不安全的行为),如果二进制文件可能会看到针对正在运行的内核应用安全更新的实时补丁,而不需要重新引导。这对于kGraft、Ksplice和Kpatch等帮助确保GCC编译器不会捏造它们的实时补丁工作是相关的。
GCC 9.1.0将在4月底或5月初发布,Linux 5.2内核将在默认情况下启用-flive-patch,当它由受支持的编译器构建时,当启用CONFIG_LIVEPATCH时,大多数Linux发行版内核都默认启用-flive-patch。
SUSE的Miroslav Benes在Linux 5.2合并窗口之前添加了当前位于livepatching-next树中的更改,确实注意到在特定情况下,由于此实时修补选项控制编译器的优化,可能会出现性能命中启发式。
Miroslav指出:“该选项对三种不同的英特尔机器的性能影响进行了测量——两个更大的NUMA盒子和一个更小的UMA盒子。选择内核密集型(IO、调度、网络)基准测试,并从NAS并行基准测试中选择一组HPC工作负载。测试在使用openSUSE Leap 15.0用户空间的上游内核5.0-rc8上进行。大多数测试不受影响。唯一重要的例外是调度器部分,它的性能下降了1-3%。”
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-04/158026.htm