Jason Donenfeld 是 WireGuard 的主要開發者,同時他也是 Linux 內核隨機數相關代碼的維護者,近日在他的領導下,Linux 內核的隨機數生成器代碼有了巨大幅度的改進。
在之前的 Linux 5.17 中,Jason Donenfeld 就在隨機代碼用 BLAKE2s 代替了 SHA1,由于 BLAKE2s 自帶的特性,前者通常比后者更快更安全。經過測試,通過這個簡單的轉換就能獲得 131% 左右的速度提升。
雖然在 Linux 5.17 中有了速度上的大幅提升,但 Jason Donenfeld 對此并沒滿足。因此在 Linux 5.18 中他對隨機代碼作出了更多的改進。
通過查看 Linux 的 random.git[1] 倉庫的日志能夠看出 (上圖),開發者 Jason Donenfeld 在最近兩天時間里進行了大量的代碼提交。這些提交內容都將在 3 月下旬 Linux 5.18 的合并窗口啟動時引入內核。
在郵件中[2]特別強調到,通過使用正在開發的最新代碼,用于獲取隨機字節的 getrandom() 調用能夠獲得更好的性能。在配備英特爾 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 內存的設備上進行 stress-ng getrandom() 基準測試后,更是獲得了 8450% 的性能提升。
此次更改基本上會將之前的全局結構(實際上是 per-numa 節點結構)更改為 per-cpu 結構,這意味著快速路徑上的許多鎖都會消失。因此,當在具備多核的 CPU 上同時嘗試 getrandom() 時,毫無疑問性能會出現提升。只不過沒想到在測試中能帶來 8450% 的提升。
除此之外,當從 per-numa 更改為 per-cpu 后,也將不再需要被推遲到工作隊列上線后才能進行。也正如我之前所說,此次改進將會為高核心數的電腦和服務器帶來巨大收益。
原文標題:Linux getrandom() 獲得 8450% 性能提升
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
cpu
+關注
關注
68文章
11028瀏覽量
215797 -
服務器
+關注
關注
12文章
9663瀏覽量
87180 -
代碼
+關注
關注
30文章
4886瀏覽量
70197
原文標題:?Linux getrandom() 獲得 8450% 性能提升
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【YOLOv5】LabVIEW+OpenVINO讓你的YOLOv5在CPU上飛起來
如何在TouchGFX上創建一個簡單的屏幕并嘗試在CubeIDE上編譯項目呢
STM32總線CPU和DMA可以同時工作嗎?有仲裁機制嗎?
在i.MX8QM MEK上嘗試HDMI RX功能提示失敗的原因?
抗輻射宇航級CPU上中國和美國還有多大差距?
介紹CPU超頻及作用與如何超頻及其好壞
把進程綁定到某個 CPU 上運行是怎么實現?
(失敗)嘗試將eCOS移植到stm32h743vi上

如何估算S7-1500 CPU的裝載存儲區在SIMATIC存儲卡上的大小?

評論