专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
今天看啥  ›  专栏  ›  OSC开源社区

Linus::我略微出手修改几行内核代码就提升了2.6%性能

OSC开源社区  · 公众号  · 程序员  · 2024-11-01 16:40

文章预览

OSCHINA ↑点击蓝字 关注我们 Linus Torvalds 本周三向内核合并了自己编写的一个补丁,该补丁通过修改几行代码,就在英特尔的某项性能基准测试中(名为"will it scale"的 per-thread-ops 基准测试) 实现了 2.6% 的性能提升 。 根据介绍,这个补丁的目的是避免在 64 位 copy_from_user () 函数中使用 barrier_nospec ()。copy_from_user () 用于将数据块从用户空间复制到内核空间。 Linus 解释道: “64 位 copy_from_user () 中的 barrier_nospec () 函数运行速度很慢。 如果地址无效,可以使用 pointer masking 来强制用户指针全为 1。” 整体的代码改动如下(有请懂的大佬在评论区解读一波): @@ -38,6 +38,7 @@ #else #define can_do_masked_user_access() 0 #define masked_user_access_begin(src) NULL + #define mask_user_address(src) (src) #endif /* @@ -159,19 +160,27 @@ _inline_copy_from_user(void *to, const void __user *from, unsigned long n) { u ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览