Skip to contentSkip to conversation

Flood of edac-related errors since 6.13

DISCUSSION Ramses 3 participants 8 messages Feb 6, 2025 – Feb 12, 2025

Subsystems (2)
lore
Share & tools
lore

Ramses

author
#0 lore raw

Hi

Since 6.13, I get a flood of the following messages in the logs of my intel n100 machine, always with the exact same memory address:

jan 20 12:40:57 beelink kernel: EDAC MC: Ver: 3.0.0
jan 20 12:40:57 beelink kernel: caller igen6_probe+0x1b2/0x83b [igen6_edac] mapping multiple BARs
jan 20 12:40:57 beelink kernel: EDAC MC0: Giving out device to module igen6_edac controller Intel_client_SoC MC#0: DEV 0000:00:00.0 (POLLED) jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:40:57 beelink kernel: EDAC igen6: v2.5.1
jan 20 12:40:59 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:40:59 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:41:00 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:41:00 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:41:01 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:41:01 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:41:02 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:41:02 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:41:03 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:41:04 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 12:41:04 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 12:41:05 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0

On previous kernels, I only got this single message right after booting:

jan 20 03:17:45 beelink kernel: EDAC MC: Ver: 3.0.0
jan 20 03:17:45 beelink kernel: caller igen6_probe+0x191/0x810 [igen6_edac] mapping multiple BARs
jan 20 03:17:45 beelink kernel: EDAC MC0: Giving out device to module igen6_edac controller Intel_client_SoC MC#0: DEV 0000:00:00.0 (INTERRUPT) jan 20 03:17:45 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR
jan 20 03:17:45 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0
jan 20 03:17:45 beelink kernel: EDAC igen6: v2.5.1

I assume this change is because of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.13.1&id=e14232afa94445e03fc3a0291b07a68f3408c120

The system works perfectly fine otherwise and I've had the message at boot for as long as the logs go back (until mid october 2024). I didn't actually notice it before, so I'm only know questioning what's its significance.

Is there a possibility that this is a false positive, or is this definitely an indication that something is wrong with the system's memory and I should replace the DIMM? I ran memtest for about two hours earlier and it didn't report any failure.

I'd like to hear your thoughts on this.

Cheers,
Ramses

#1 lore raw

Thanks for the report.

Quoted 21 lines

From: Ramses <[email protected]>
Sent: Friday, February 7, 2025 6:29 AM
To: Linux Edac <[email protected]>
Subject: Flood of edac-related errors since 6.13

Hi

Since 6.13, I get a flood of the following messages in the logs of my intel n100 machine, always with the exact same memory address:

jan 20 12:40:57 beelink kernel: EDAC MC: Ver: 3.0.0 jan 20 12:40:57 beelink
kernel: caller igen6_probe+0x1b2/0x83b [igen6_edac] mapping multiple BARs jan 20 12:40:57 beelink kernel: EDAC MC0: Giving out device to module igen6_edac controller Intel_client_SoC MC#0: DEV 0000:00:00.0 (POLLED) jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0 jan [...]
I assume this change is because of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6
.13.1&id=e14232afa94445e03fc3a0291b07a68f3408c120

Quoted 7 lines

The system works perfectly fine otherwise and I've had the message at boot for as long as the logs go back (until mid october 2024). I didn't actually notice it before, so I'm only know questioning what's its significance.

Is there a possibility that this is a false positive, or is this definitely an indication that something is wrong with the system's memory and I should replace the DIMM?

It seemed like it was a false positive.
I guess the readout ECC log was 0xffffffffffffffff. Do you have the opportunity to build the kernel with the 'CONFIG_EDAC_DEBUG=y' option enabled and then help to take the log?

Thanks

-Qiuxu

author
#2 lore raw

Feb 7, 2025, 04:19 by [email protected]:

Quoted 32 lines

Thanks for the report.

Quoted 21 lines

From: Ramses <>> [email protected]>> >
Sent: Friday, February 7, 2025 6:29 AM
To: Linux Edac <>> [email protected]>> >
Subject: Flood of edac-related errors since 6.13

Hi

Since 6.13, I get a flood of the following messages in the logs of my intel n100 machine, always with the exact same memory address:

jan 20 12:40:57 beelink kernel: EDAC MC: Ver: 3.0.0 jan 20 12:40:57 beelink
kernel: caller igen6_probe+0x1b2/0x83b [igen6_edac] mapping multiple BARs jan 20 12:40:57 beelink kernel: EDAC MC0: Giving out device to module igen6_edac controller Intel_client_SoC MC#0: DEV 0000:00:00.0 (POLLED) jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: HANDLING IBECC MEMORY ERROR jan 20 12:40:57 beelink kernel: EDAC igen6 MC0: ADDR 0x7fffffffe0 jan [...]
I assume this change is because of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6
.13.1&id=e14232afa94445e03fc3a0291b07a68f3408c120

Quoted 8 lines

The system works perfectly fine otherwise and I've had the message at boot for as long as the logs go back (until mid october 2024). I didn't actually notice it before, so I'm only know questioning what's its significance.

Is there a possibility that this is a false positive, or is this definitely an indication that something is wrong with the system's memory and I should replace the DIMM?

Quoted 9 lines

It seemed like it was a false positive.
I guess the readout ECC log was 0xffffffffffffffff. Do you have the opportunity to build the kernel with the 'CONFIG_EDAC_DEBUG=y' option enabled and then help to take the log?

Thanks

-Qiuxu

Thanks for your reply!

I recompiled the kernel with that option enabled, and attached the dmesg output to this email. Let me know if I can do anything else to help debug this.

Cheers, Ramses

#3 lore raw

Hi Ramses,

Quoted 7 lines

From: Ramses <[email protected]>
[...]

Thanks for your reply!

I recompiled the kernel with that option enabled, and attached the dmesg output to this email. Let me know if I can do anything else to help debug this.

Thanks for helping debug the issue and taking the useful dmesg log.
From the dmesg log, the ECC error log register of this SoC contained the invalid error value ~0, resulting in a flood of invalid error reports in polling mode.

@Ramses & @John,
Can you please apply the attached fix patch and see whether it fixes the issue? Thanks!

-Qiuxu

From fa843550da0589a1fae2fa7713767bbc98b3a02c Mon Sep 17 00:00:00 2001
From: Qiuxu Zhuo <[email protected]>
Date: Mon, 10 Feb 2025 15:17:37 +0800
Subject: [PATCH 1/1] EDAC/igen6: Fix the flood of invalid error reports

The ECC_ERROR_LOG register of certain SoCs may contain the invalid value ~0, which results in a flood of invalid error reports in polling mode.

Fix the flood of invalid error reports by skipping the invalid ECC error log value ~0.

---
 drivers/edac/igen6_edac.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)
drivers/edac/igen6_edac.c +15 -6
index fdf3a84fe698..595908af9e5c 100644
@@ -785,13 +785,22 @@ static u64 ecclog_read_and_clear(struct igen6_imc *imc)
 {
 	u64 ecclog = readq(imc->window + ECC_ERROR_LOG_OFFSET);
 
-	if (ecclog & (ECC_ERROR_LOG_CE | ECC_ERROR_LOG_UE)) {
-		/* Clear CE/UE bits by writing 1s */
-		writeq(ecclog, imc->window + ECC_ERROR_LOG_OFFSET);
-		return ecclog;
-	}
+	/*
+	 * Quirk: The ECC_ERROR_LOG register of certain SoCs may contain
+	 *        the invalid value ~0. This will result in a flood of invalid
+	 *        error reports in polling mode. Skip it.
+	 */
+	if (ecclog == ~0)
+		return 0;
 
-	return 0;
+	/* Neither a CE nor a UE. Skip it.*/
+	if (!(ecclog & (ECC_ERROR_LOG_CE | ECC_ERROR_LOG_UE)))
+		return 0;
+
+	/* Clear CE/UE bits by writing 1s */
+	writeq(ecclog, imc->window + ECC_ERROR_LOG_OFFSET);
+
+	return ecclog;
 }
 
 static void errsts_clear(struct igen6_imc *imc)
Signature · 1 line
2.17.1
author
#4 lore raw

Feb 10, 2025, 09:05 by [email protected]:

Quoted 15 lines

Hi Ramses,

Quoted 8 lines

From: Ramses <>> [email protected]>> >
[...]

Thanks for your reply!

I recompiled the kernel with that option enabled, and attached the dmesg output to this email. Let me know if I can do anything else to help debug this.

Thanks for helping debug the issue and taking the useful dmesg log.
From the dmesg log, the ECC error log register of this SoC contained the invalid error value ~0, resulting in a flood of invalid error reports in polling mode.

Quoted 6 lines

@Ramses & @John,
Can you please apply the attached fix patch and see whether it fixes the issue? Thanks!

-Qiuxu

I just booted into a kernel with that patch applied and I'm not getting the errors anymore, so that seems to fix the issue for me indeed!

Thanks a bunch!
Ramses

#5 lore raw

Hi Ramses,

Quoted 5 lines

From: Ramses <[email protected]>
[...]

I just booted into a kernel with that patch applied and I'm not getting the errors anymore, so that seems to fix the issue for me indeed!

Thank you for your testing.

I'm waiting a bit for John's test result (if he has the chance to test it). After that, I'll post the fix path to the EDAC mailing list.

-Qiuxu

#6 lore raw
Quoted 2 lines · On Monday, February 10th, 2025 at 8:55 PM, Zhuo, Qiuxu [email protected]…

I'm waiting a bit for John's test result (if he has the chance to test it). After that, I'll post the fix path to the EDAC mailing list.

Confirmed, your patch fixed the flood experienced with 6.13.2-arch1-1 on my Beelink EQ12 (N100). Many thanks.

#7 lore raw
Quoted 4 lines

From: John <[email protected]>
[...]
Confirmed, your patch fixed the flood experienced with 6.13.2-arch1-1 on my Beelink EQ12 (N100). Many thanks.

Hi John,

Thanks so much for your verification.

-Qiuxu