From 1faa702430a39011eba2de00640bc1a5e2c50633 Mon Sep 17 00:00:00 2001 From: lean Date: Mon, 21 Jun 2021 11:52:55 +0800 Subject: [PATCH] urngd: fix busy loop in case of ioctl cause high cpu usage Signed-off-by: Tianling Shen (cherry picked from commit 562227aa9bfbc9c4b6afb4fbb7dcffce797a8901) --- .../100-fix-high-cpu-usage-with-docker.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 package/system/urngd/patches/100-fix-high-cpu-usage-with-docker.patch diff --git a/package/system/urngd/patches/100-fix-high-cpu-usage-with-docker.patch b/package/system/urngd/patches/100-fix-high-cpu-usage-with-docker.patch new file mode 100644 index 0000000000..0be9c5fa27 --- /dev/null +++ b/package/system/urngd/patches/100-fix-high-cpu-usage-with-docker.patch @@ -0,0 +1,18 @@ +--- a/urngd.c ++++ b/urngd.c +@@ -129,9 +129,14 @@ static size_t gather_entropy(struct urng + static void low_entropy_cb(struct uloop_fd *ufd, unsigned int events) + { + struct urngd *u = container_of(ufd, struct urngd, rnd_fd); ++ size_t res; + + DEBUG(2, DEV_RANDOM " signals low entropy\n"); +- gather_entropy(u); ++ res = gather_entropy(u); ++ if (!res) { ++ DEBUG(2, "gather_entropy failed, delaying further attempts\n"); ++ sleep(60); ++ } + } + + static void urngd_done(struct urngd *u)