2003-08-31 19:19:40

by John Levon

[permalink] [raw]
Subject: [PATCH] OProfile: correct CPU type for x86-64


Enable the Hammer specific events by giving the correct cpu string.
From, and tested by, Will Cohen.

diff -Naur -X dontdiff linux-cvs/arch/i386/oprofile/nmi_int.c linux-fixes/arch/i386/oprofile/nmi_int.c
--- linux-cvs/arch/i386/oprofile/nmi_int.c 2003-08-29 16:56:24.000000000 +0100
+++ linux-fixes/arch/i386/oprofile/nmi_int.c 2003-08-29 17:02:20.000000000 +0100
@@ -364,10 +364,21 @@
switch (vendor) {
case X86_VENDOR_AMD:
/* Needs to be at least an Athlon (or hammer in 32bit mode) */
- if (family < 6)
+
+ switch (family) {
+ default:
return -ENODEV;
- model = &op_athlon_spec;
- nmi_ops.cpu_type = "i386/athlon";
+ case 6:
+ model = &op_athlon_spec;
+ nmi_ops.cpu_type = "i386/athlon";
+ break;
+#if defined(CONFIG_X86_64)
+ case 0xf:
+ model = &op_athlon_spec;
+ nmi_ops.cpu_type = "x86-64/hammer";
+ break;
+#endif /* CONFIG_X86_64 */
+ }
break;

#if !defined(CONFIG_X86_64)


2003-08-31 20:25:16

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] OProfile: correct CPU type for x86-64

John Levon <[email protected]> writes:

> + break;
> +#if defined(CONFIG_X86_64)
> + case 0xf:
> + model = &op_athlon_spec;
> + nmi_ops.cpu_type = "x86-64/hammer";
> + break;
> +#endif /* CONFIG_X86_64 */

The ifdef is not needed. The case is valid for i386 too, when running
an Opteron with an 32bit kernel. In that case you also want the user tools
to select the Opteron events.

-Andi