整个小暑,WireGuard 成名的 Jason Donenfeld提议将 getrandom() 添加到 vDSO中,以便用户空间开发人员享受更好的性能。上周,他发布了这个提议的内核补丁的最新版本,他看到这个变化带来了大约 15 倍的加速。
在 vDSO 中支持 getrandom() 旨在解决用户空间开发人员面临的两个问题:
1) 用户空间想要更快的加密安全随机数,任意大小,无论大小。
2) 用户空间目前无法使用与 getrandom() 相同的安全配置文件安全地滚动其自己的 RNG。
在讨论了在 vDSO 中实现 getrandom() 之后,Donenfeld 修改了补丁以合并反馈以避免行为更改并使 vgetrandom_alloc 成为系统调用。此外,还有一些其他较小的修复/更改。
Jason 在v3 帖子的结尾是:
到目前为止,在我的测试结果中,性能非常出色(uint32_t 生成大约是 15 倍),而且它似乎正在工作。有几个 TODO 位与实际的 random.c 生命周期集成,但作为早期的补丁集,这至少引入了预期的接口。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun191312.html