2010-04-16 17:09:03

by John Villalovos

[permalink] [raw]
Subject: [PATCH] Oprofile: Change CPUIDS from decimal to hex, and add some comments

Back when the patch was submitted for "Add Xeon 7500 series support to
oprofile", Robert Richter had asked for a follown patch that converted
all the CPU ID values to hex.

I have done that here for the processors in the ppro_init() function and also
added some documentation as comments that I retrieved from the Intel Software
Developer's Manual (SDM) March 2010 edition in Volume 3B, Table B-1.

The Intel SDM can be found at:
http://www.intel.com/products/processor/manuals/

I also added processor codenames for some of the newer processors.

diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 2c505ee..9cd591e 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -579,32 +579,53 @@ static int __init ppro_init(char **cpu_type)
return 0;

switch (cpu_model) {
- case 0 ... 2:
+ case 0x00 ... 0x02:
+ /* 06_01H: Intel Pentium Pro Processor */
*cpu_type = "i386/ppro";
break;
- case 3 ... 5:
+ case 0x03 ... 0x05:
+ /* 06_03H, 06_05H: Intel Pentium II Xeon Processor, Intel Pentium II
+ * Processor */
*cpu_type = "i386/pii";
break;
- case 6 ... 8:
- case 10 ... 11:
+ case 0x06 ... 0x08:
+ case 0x0A ... 0x0B:
+ /* 06_07H, 06_08H, 06_0AH, 06_0BH: Intel Pentium III Xeon Processor,
+ * Intel Pentium III Processor */
*cpu_type = "i386/piii";
break;
- case 9:
- case 13:
+ case 0x09:
+ case 0x0D:
+ /* 06_09H, 06_0DH: Intel Pentium M processor */
*cpu_type = "i386/p6_mobile";
break;
- case 14:
+ case 0x0E:
+ /* 06_0EH: Intel Core Duo, Intel Core Solo processors */
*cpu_type = "i386/core";
break;
- case 15: case 23:
+ case 0x0F:
+ /* 06_0FH: Intel Xeon Processor 3000, 3200, 5100, 5300, 7300 series,
+ * Intel Core 2 Quad processor 6000 series, Intel Core 2 Extreme 6000
+ * series, Intel Core 2 Duo 4000, 5000, 6000, 7000 series processors,
+ * Intel Pentium dual-core processors.
+ * Code names: Clovertown, Conroe, Kentsfield, Merom, Tigerton, and
+ * Woodcrest. */
+ case 0x17:
+ /* 06_17H: Intel Xeon Processor 5200, 5400 series, Intel Core 2 Quad
+ * processors 8000, 9000 series.
+ * Code names: Harpertown, Penryn, Wolfdale, and Yorkfield */
*cpu_type = "i386/core_2";
break;
- case 0x2e:
- case 26:
+ case 0x1A:
+ /* 06_1AH: Intel Core i7 Processor, Intel Xeon Processor 5500 series
+ * Code names: Bloomfield and Nehalem-EP */
+ case 0x2E:
+ /* 06_2EH: Intel Xeon 6500/7500 series codenamed Nehalem-EX/Beckton */
spec = &op_arch_perfmon_spec;
*cpu_type = "i386/core_i7";
break;
- case 28:
+ case 0x1C:
+ /* 06_1CH: Intel Atom processor */
*cpu_type = "i386/atom";
break;
default:
--
John Villalovos
Intel Corporation on-site partner engineer at Red Hat, Inc.

http://tabasco.usersys.redhat.com/