|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen stable-4.20] x86/idle: Fix the C6 eoi_errata[] list to include NEHALEM_EX
commit 73eaac394c3163a7d1b888911a2457edd467b2c5
Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Tue Jul 22 09:55:07 2025 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Jul 22 09:55:07 2025 +0200
x86/idle: Fix the C6 eoi_errata[] list to include NEHALEM_EX
NEHALEM_EX is affected by the erratum too.
Change the comment to be the full erratum text, not an interpretation of it.
Fixes: 95807bcae47e ("C6 state with EOI issue fix for some Intel
processors")
Reported-by: Jan Beulich <jbeulich@xxxxxxxx>
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
master commit: d225205a0b85b748151ebd880ee29dad55cb0a15
master date: 2025-07-18 13:40:12 +0100
---
xen/arch/x86/acpi/cpu_idle.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 24447fb933..914661312d 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -584,18 +584,24 @@ bool errata_c6_workaround(void)
{
#define INTEL_FAM6_MODEL(m) { X86_VENDOR_INTEL, 6, m, X86_FEATURE_ALWAYS }
/*
- * Errata AAJ72: EOI Transaction May Not be Sent if Software Enters
- * Core C6 During an Interrupt Service Routine"
+ * Errata AAJ72, etc: EOI Transaction May Not be Sent if Software
+ * Enters Core C6 During an Interrupt Service Routine
*
- * There was an errata with some Core i7 processors that an EOI
- * transaction may not be sent if software enters core C6 during an
- * interrupt service routine. So we don't enter deep Cx state if
- * there is an EOI pending.
+ * If core C6 is entered after the start of an interrupt service
+ * routine but before a write to the APIC EOI (End of Interrupt)
+ * register, and the core is woken up by an event other than a fixed
+ * interrupt source the core may drop the EOI transaction the next
+ * time APIC EOI register is written and further interrupts from the
+ * same or lower priority level will be blocked.
+ *
+ * Software should check the ISR register and if any interrupts are in
+ * service only enter C1.
*/
static const struct x86_cpu_id eoi_errata[] = {
- INTEL_FAM6_MODEL(0x1a),
+ INTEL_FAM6_MODEL(0x1a), /* AAJ72 */
INTEL_FAM6_MODEL(0x1e),
INTEL_FAM6_MODEL(0x1f),
+ INTEL_FAM6_MODEL(0x2e), /* BA106 */
INTEL_FAM6_MODEL(0x25),
INTEL_FAM6_MODEL(0x2c),
INTEL_FAM6_MODEL(0x2f),
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.20
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |