0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核代码修改将为性能测试获8450%提升

马哥Linux运维 来源:OSC开源社区 作者:OSC开源社区 2022-03-09 14:16 次阅读

Jason Donenfeld 是 WireGuard 的主要开发者,同时他也是 Linux 内核随机数相关代码的维护者,近日在他的领导下,Linux 内核的随机数生成器代码有了巨大幅度的改进。 在之前的 Linux 5.17 中,Jason Donenfeld 就在随机代码用 BLAKE2s 代替了 SHA1,由于 BLAKE2s 自带的特性,前者通常比后者更快更安全。经过测试,通过这个简单的转换就能获得 131% 左右的速度提升。 虽然在 Linux 5.17 中有了速度上的大幅提升,但 Jason Donenfeld 对此并没满足。因此在 Linux 5.18 中他对随机代码作出了更多的改进。

cd964870-9f64-11ec-952b-dac502259ad0.png

通过查看 Linux 的random.git仓库的日志能够看出(上图),开发者 Jason Donenfeld 在最近两天时间里进行了大量的代码提交。这些提交内容都将在 3 月下旬 Linux 5.18 的合并窗口启动时引入内核。

cdb60ee4-9f64-11ec-952b-dac502259ad0.png

在邮件中特别强调到,通过使用正在开发的最新代码,用于获取随机字节的 getrandom() 调用能够获得更好的性能。在配备英特尔 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 内存的设备上进行 stress-ng getrandom() 基准测试后,更是获得了 8450% 的性能提升。 此次更改基本上会将之前的全局结构(实际上是 per-numa 节点结构)更改为 per-cpu 结构,这意味着快速路径上的许多锁都会消失。因此,当在具备多核的 CPU 上同时尝试 getrandom() 时,毫无疑问性能会出现提升。只不过没想到在测试中能带来 8450% 的提升。 除此之外,当从 per-numa 更改为 per-cpu 后,也将不再需要被推迟到工作队列上线后才能进行。也正如我之前所说,此次改进将会为高核心数的电脑和服务器带来巨大收益。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744

原文标题:性能提升8450%,Linux内核函数获大幅改进

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TQT507开发板如何修改和保存内核配置

    本文档介绍如何在开发时修改和保存内核配置,适用于开发板TQT507。 1.修改内核配置 编译时系统会先检测当前内核源码目录下是否存在.con
    的头像 发表于 12-28 14:13 184次阅读
    TQT507开发板如何<b class='flag-5'>修改</b>和保存<b class='flag-5'>内核</b>配置

    如何修改内核设备树

    如何修改内核设备树
    的头像 发表于 12-14 14:06 318次阅读
    如何<b class='flag-5'>修改</b><b class='flag-5'>内核</b>设备树

    获取Linux内核源码的方法

    件系统等关键功能,今天小编就给各位小伙伴介绍一下如何获取Linux内核源码。获取Linux内核源码的渠道Linux有一个庞大的开源社区,每个
    的头像 发表于 12-13 09:49 301次阅读
    获取<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>源码的方法

    T507开发板如何修改和保存内核配置

    本文档介绍如何在开发时修改和保存内核配置,适用于开发板TQT507。1.修改内核配置编译时系统会先检测当前内核源码目录下是否存在.confi
    的头像 发表于 12-08 11:26 228次阅读
    T507开发板如何<b class='flag-5'>修改</b>和保存<b class='flag-5'>内核</b>配置

    AD5592r linux驱动不支持linux4.1的内核,怎么修改

    AD5592r linux驱动不支持linux4.1的内核,不知道怎么修改,以适配linux4.1的内核
    发表于 12-06 07:17

    Linux内核slab性能优化的核心思想

    今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux
    的头像 发表于 11-13 11:45 331次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>slab<b class='flag-5'>性能</b>优化的核心思想

    Linux内核中如何修改printk等级

    KERN_SOH "7" /* 调试输出 */ Linux内核为printk定义了8个输出等级, KERN_EMERG
    的头像 发表于 09-27 15:56 1086次阅读

    linux内核代码详解

     在安装好的Linux系统中,内核的源代码位于/ust/src/linux.如果是从GNU网站下载的Linux
    发表于 09-06 17:01 2次下载

    Linux内核如何使用结构体和函数指针?

    我将结合具体的Linux内核驱动框架代码来展示Linux内核如何使用结构体和函数指针。
    的头像 发表于 09-06 14:17 571次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>如何使用结构体和函数指针?

    Linux内核第一版开源代码解读

    《Exploring the internals of Linux v0.01》是一篇解读 Linux 内核第一版开源代码的文章。此文今天在 Reddit 和 Hacker News
    发表于 08-15 09:47 444次阅读

    Linux内核代码中常用的数据结构有哪些?

    Linux内核代码中广泛使用了数据结构和算法,其中最常用的两个是链表和红黑树。
    发表于 07-20 09:39 340次阅读

    Linux内核代码60%都是驱动?

    为什么Linux内核代码60%都是驱动? 如果每支持新的设备就加入驱动,内核会不会变得越来越臃肿?
    的头像 发表于 07-11 11:48 453次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b><b class='flag-5'>代码</b>60%都是驱动?

    linux内核源码编译

    ,也不能对Minix开发者所作的设计进行修改,基于此linus开始了开发自己的操作系统,并于1991年年底在internet上发布了早期版本,由此Linux内核诞生。Linux
    发表于 06-27 15:37 577次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>内核</b>源码编译

    Linux内核的编译和运行

    想让Linux内核代码跑起来,得先搭建编译和运行代码的环境。
    发表于 06-23 11:56 361次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的编译和运行

    如何编译Linux内核rpm包

    进入github官网,搜索linux,使用git下载最新版本,或者其它版本的内核代码
    发表于 06-07 16:24 799次阅读
    如何编译<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>rpm包