参考原文 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: 有时候可能版本不匹配,打不上,那就直接手动改呗,记得备份就好了