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

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

3天内不再提示

Linux内核的随机数生成器代码获得大幅改进

Linux爱好者 来源:OSC开源社区 作者:OSC开源社区 2022-04-15 18:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

d03bfad2-bc12-11ec-aa7f-dac502259ad0.png

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

d04e68f2-bc12-11ec-aa7f-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 后,也将不再需要被推迟到工作队列上线后才能进行。也正如我之前所说,此次改进将会为高核心数的电脑和服务器带来巨大收益。

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

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    4

    文章

    1475

    浏览量

    43089
  • Linux
    +关注

    关注

    88

    文章

    11814

    浏览量

    219527
  • 生成器
    +关注

    关注

    7

    文章

    322

    浏览量

    22793

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

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成器

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成器 在电子工程师的日常设计工作中,选择合适的芯片是实现高效、可靠电路的关键。今天,我们就来
    的头像 发表于 04-22 16:40 141次阅读

    ICS2008B:SMPTE时间码接收器/生成器的技术解析

    ICS2008B:SMPTE时间码接收器/生成器的技术解析 在多媒体技术飞速发展的今天,时间码的精确控制对于音视频同步至关重要。ICS2008B作为一款SMPTE时间码接收器/生成器芯片,为多媒体
    的头像 发表于 04-13 18:10 357次阅读

    探索ICS9FG104E:PCIe Gen1/2、USB3.0等设备的频率生成器解决方案

    探索ICS9FG104E:PCIe Gen1/2、USB3.0等设备的频率生成器解决方案 在电子设备的设计中,频率生成器扮演着至关重要的角色,它为各种高速接口提供稳定的时钟信号,确保设备的正常运行
    的头像 发表于 03-29 17:05 904次阅读

    SBC案例生成器对VisionFive2的支持

    最近收到了我的 VisionFive2,并且是 SBC 模型框架和 SBC 案例生成器的开发人员,我为那些对标准和自定义案例感兴趣的人在这两个应用程序中添加了对 VisionFive2 SBC
    发表于 03-18 08:21

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越之选

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越之选 引言 在当今的电子设计领域,PCIe技术的广泛应用对时钟生成器提出了更高的要求。Renesas的9FGV0431作为一款专为
    的头像 发表于 03-15 17:25 1099次阅读

    硅臻正式推出QRNG全系列量子随机数发生器产品

    信息安全是社会稳定的必要条件,数字时代其重要性更是愈发凸显。无论在经典还是量子加密的过程中,随机数都是安全性的基石。加密密钥由随机数生成,安全性由随机数的不可预测性保证。与伪
    的头像 发表于 03-10 16:24 380次阅读
    硅臻正式推出QRNG全系列量子<b class='flag-5'>随机数</b>发生器产品

    进迭时空 Upstream | K3 获得 Linux 7.0 内核原生支持

    款符合RVA23规范的RISC-V量产芯片,成功获得Linux内核主线原生支持。01.战略先行:对标一流,确立“Pre-siliconUpstream”目标早在K
    的头像 发表于 02-27 18:10 1.2w次阅读
    进迭时空 Upstream | K3 <b class='flag-5'>获得</b> <b class='flag-5'>Linux</b> 7.0 <b class='flag-5'>内核</b>原生支持

    飞凌嵌入式ElfBoard-系统信息与资源之产生随机数

    整数,作为随机数生成器的种子值。它决定了 rand() 函数生成随机数序列的起始点。4.返回值无。5.示例:(使用rand函数产生一组随机数
    发表于 01-22 08:59

    如何在LTspice仿真中实现伪随机数和真随机数生成

    to reseed the MC generator(使用时钟重新设置MC生成器随机种子)选项。文章探讨了伪随机数和真随机数之间的利弊权衡,同时比较了蒙特卡罗统计仿真与更有针对性的
    的头像 发表于 01-09 14:08 4853次阅读
    如何在LTspice仿真中实现伪<b class='flag-5'>随机数</b>和真<b class='flag-5'>随机数</b>的<b class='flag-5'>生成</b>

    德思特应用 | 前沿量子随机数研究:多特蒙德工业大学如何通过高速数字化仪保障信息安全

    在量子信息时代,生成真正随机的数字对加密与安全至关重要。多特蒙德工业大学研究人员利用高速数字化仪对量子随机数生成过程进行多通道采集与分析,成功实验评估窃听风险,为密码协议与安全应用提供
    的头像 发表于 12-22 17:22 521次阅读
    德思特应用 | 前沿量子<b class='flag-5'>随机数</b>研究:多特蒙德工业大学如何通过高速数字化仪保障信息安全

    如何通过地址生成器实现神经网络特征图的padding?

    ,从而使卷积输出特征图结果满足我们的需求,这种补零的操作称之为padding,如下图所示。 关于padding的实现,一般有两种操作,第一种是使用稀疏地址生成器,寻找padding数据地址的规律,当
    发表于 10-22 08:15

    ‌基于RNG90的真随机数生成器技术解析与应用指南

    Microchip Technology RNG90 CryptoAuthentication™器件设计用于需要安全随机数发生器的系统。RNG90即用型,无需任何定制。Microchip RNG90
    的头像 发表于 10-10 15:01 843次阅读
    ‌基于RNG90的真<b class='flag-5'>随机数</b><b class='flag-5'>生成器</b>技术解析与应用指南

    非对称密钥生成和转换规格详解

    )。 h:余因子(cofactor)。 sk:私钥,是一个随机整数,小于n。 pk:公钥,是椭圆曲线上的一个点, pk = sk * g。 当创建非对称密钥生成器时,对于指定公/私钥参数生成ECC密钥
    发表于 09-01 07:50

    随机数和伪随机数的区别

    随机数在当前程序运行环境中是一种常用参数,目前主要分为两种,伪随机数和真随机数,本期我们就来讲一下二者的区别。
    的头像 发表于 08-27 17:46 2872次阅读

    labview求助:想写一个labview输出不重复随机数的程序,有没有大佬帮忙看看这个假分支要怎么写?

    大佬们想写一个labview输出不重复随机数的程序,有没有大佬帮忙看看这个假分支要怎么写
    发表于 04-27 08:39