39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
|
|
From 5cf2386450f8a4837bcc68673f616732c38d13e0 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Zeph / Liz Loss-Cutler-Hull <warp-spam_git@aehallh.com>
|
||
|
|
Date: Sun, 9 Jul 2023 04:57:19 -0700
|
||
|
|
Subject: [PATCH 2/2] Check CPUs online, not configured.
|
||
|
|
|
||
|
|
When the number of CPUs detected is greater than the number of CPUs in
|
||
|
|
the system, rasdaemon will crash when it receives some events.
|
||
|
|
|
||
|
|
Looking deeper, we also fail to use the poll method for similar reasons
|
||
|
|
in this case.
|
||
|
|
|
||
|
|
All of this can be prevented by checking to see how many CPUs are
|
||
|
|
currently online (sysconf(_SC_NPROCESSORS_ONLN)) instead of how many
|
||
|
|
CPUs the current kernel was configured to support
|
||
|
|
(sysconf(_SC_NPROCESSORS_CONF)).
|
||
|
|
|
||
|
|
For the kernel side of the discussion, see https://lore.kernel.org/lkml/CAM6Wdxft33zLeeXHhmNX5jyJtfGTLiwkQSApc=10fqf+rQh9DA@mail.gmail.com/T/
|
||
|
|
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
||
|
|
---
|
||
|
|
ras-events.c | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/ras-events.c b/ras-events.c
|
||
|
|
index fc54325..4cf0ad1 100644
|
||
|
|
--- a/ras-events.c
|
||
|
|
+++ b/ras-events.c
|
||
|
|
@@ -353,7 +353,7 @@ static void parse_ras_data(struct pthread_data *pdata, struct kbuffer *kbuf,
|
||
|
|
|
||
|
|
static int get_num_cpus(struct ras_events *ras)
|
||
|
|
{
|
||
|
|
- return sysconf(_SC_NPROCESSORS_CONF);
|
||
|
|
+ return sysconf(_SC_NPROCESSORS_ONLN);
|
||
|
|
#if 0
|
||
|
|
char fname[MAX_PATH + 1];
|
||
|
|
int num_cpus = 0;
|
||
|
|
--
|
||
|
|
2.35.3
|
||
|
|
|