Linux随机数nonblocking pool快速初始化

参考原文 Linux随机数nonblocking pool快速初始化

背景

环境

Linux内核版本 4.1.15

优化原因

ssh远程登录的时候老是需要等待20多秒
直到random: nonblocking pool is initialized后才成功。

未优化前
[ 23.164117] random: nonblocking pool is initialized
优化后
[ 1.318267] random: nonblocking pool is initialized
nonblocking pool 初始化快了20+秒呀!!

向内核打补丁

--- drivers/char/random.c	2017-05-04 17:35:26.000000000 +0800
+++ drivers/char/random.c	2023-08-01 20:18:06.984810777 +0800
@@ -898,7 +898,8 @@ void add_interrupt_randomness(int irq, i
 	add_interrupt_bench(cycles);
 
 	if ((fast_pool->count < 64) &&
-	    !time_after(now, fast_pool->last + HZ))
+	    !time_after(now, fast_pool->last + HZ) &&
+        nonblocking_pool.initialized)
 		return;
 
 	r = nonblocking_pool.initialized ? &input_pool : &nonblocking_pool;

Tips: 有时候可能版本不匹配,打不上,那就直接手动改呗,记得备份就好了

你可能感兴趣的:(问题收集,linux,运维,服务器)