35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
From d2b4876231ac9c2e26880ebe428bfb41e60e098e Mon Sep 17 00:00:00 2001
|
|
From: Neil Horman <nhorman@tuxdriver.com>
|
|
Date: Wed, 19 Dec 2018 10:10:44 -0500
|
|
Subject: [PATCH] Default to one thread if getaffinity returns an error
|
|
|
|
Its possible on virt systems, for sched_getaffinity to return an error
|
|
if the vm has cpus, but cgroup placement restricts that set to 0
|
|
physical processors. In that event, just default to 1 thread on cpu 0
|
|
|
|
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
|
|
---
|
|
rngd_jitter.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/rngd_jitter.c b/rngd_jitter.c
|
|
index 4e4b348..d14a3ba 100644
|
|
--- a/rngd_jitter.c
|
|
+++ b/rngd_jitter.c
|
|
@@ -421,7 +421,11 @@ int init_jitter_entropy_source(struct rng *ent_src)
|
|
cpus = CPU_ALLOC(i);
|
|
cpusize = CPU_ALLOC_SIZE(i);
|
|
CPU_ZERO_S(cpusize, cpus);
|
|
- sched_getaffinity(0, cpusize, cpus);
|
|
+ if (sched_getaffinity(0, cpusize, cpus) < 0) {
|
|
+ message(LOG_DAEMON|LOG_DEBUG, "Can not determine affinity of process, defaulting to 1 thread\n");
|
|
+ CPU_SET(0,cpus);
|
|
+ }
|
|
+
|
|
num_threads = CPU_COUNT_S(cpusize, cpus);
|
|
|
|
if (num_threads >= ent_src->rng_options[JITTER_OPT_THREADS].int_val)
|
|
--
|
|
2.17.2
|
|
|