Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 3983

kernel-2.6.18-194.11.1.el5.src.rpm

From: Prarit Bhargava <prarit@redhat.com>
Date: Fri, 29 May 2009 08:25:24 -0400
Subject: [x86] nmi: add Intel cpu 0x6f4 to perfctr1 workaround
Message-id: 20090529122520.19905.5392.sendpatchset@prarit.bos.redhat.com
O-Subject: [RHEL5.4 PATCH]: NMI: add Intel processor 0x6f4 to NMI perfctr1 workaround
Bugzilla: 500892
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>
RH-Acked-by: Aristeu Rozanski <aris@redhat.com>
RH-Acked-by: Dave Anderson <anderson@redhat.com>
RH-Acked-by: Don Zickus <dzickus@redhat.com>

Expand Intel NMI perfctr1 workaround to include a Core2 processor stepping
(cpuid family-6, model-f, stepping-4). Resolves a situation where the NMI
would not enable on these processors.

Upstream submit here:

http://marc.info/?l=linux-kernel&m=124354910010319&w=2

Succesfully tested by me.

Resolves BZ 500892.

diff --git a/arch/x86_64/kernel/perfctr-watchdog.c b/arch/x86_64/kernel/perfctr-watchdog.c
index d5a65ea..438cd71 100644
--- a/arch/x86_64/kernel/perfctr-watchdog.c
+++ b/arch/x86_64/kernel/perfctr-watchdog.c
@@ -686,9 +686,15 @@ static void probe_nmi_watchdog(void)
 		wd_ops = &k7_wd_ops;
 		break;
 	case X86_VENDOR_INTEL:
-		/* Work around Core Duo (Yonah) errata AE49 where perfctr1
-		   doesn't have a working enable bit. */
-		if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) {
+		/* Work around where perfctr1 doesn't have a working enable
+		 * bit as described in the following errata:
+		 * AE49 Core Duo and Intel Core Solo 65 nm
+		 * AN49 Intel Pentium Dual-Core
+		 * AF49 Dual-Core Intel Xeon Processor LV
+		 */
+		if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) ||
+		    ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 15 &&
+		     boot_cpu_data.x86_mask == 4))) {
 			intel_arch_wd_ops.perfctr = MSR_ARCH_PERFMON_PERFCTR0;
 			intel_arch_wd_ops.evntsel = MSR_ARCH_PERFMON_EVENTSEL0;
 		}