diff options
| author | Andi Kleen <ak@suse.de> | 2006-07-10 11:06:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-10 18:12:33 -0400 |
| commit | 1cfcea1b2d67987ddb84dc75f454321bcf536555 (patch) | |
| tree | 0a64e00386cafff9c55cd675927a00064f3d4cd3 | |
| parent | 46f6976101c359202422753d15955f67aafabe2b (diff) | |
[PATCH] x86_64: Allow oprofile for model P4 models
Add it for P4 model 6 - reported to work and have a similar PMU to
earlier P4s.
Add an p4force=1 module override parameter for future use.
We had a discussion about that earlier - it's a trade off between the
PMU staying compatible or not. I think the force parameter is a
reasonable compromise.
Cc: oprofile-list@lists.sf.net
Cc: Asit Mallick <asit.k.mallick@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/i386/oprofile/nmi_int.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/i386/oprofile/nmi_int.c b/arch/i386/oprofile/nmi_int.c index fa8a37bcb391..c8c1df8ff2b4 100644 --- a/arch/i386/oprofile/nmi_int.c +++ b/arch/i386/oprofile/nmi_int.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/oprofile.h> | 13 | #include <linux/oprofile.h> |
| 14 | #include <linux/sysdev.h> | 14 | #include <linux/sysdev.h> |
| 15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
| 16 | #include <linux/moduleparam.h> | ||
| 16 | #include <asm/nmi.h> | 17 | #include <asm/nmi.h> |
| 17 | #include <asm/msr.h> | 18 | #include <asm/msr.h> |
| 18 | #include <asm/apic.h> | 19 | #include <asm/apic.h> |
| @@ -296,12 +297,14 @@ static int nmi_create_files(struct super_block * sb, struct dentry * root) | |||
| 296 | return 0; | 297 | return 0; |
| 297 | } | 298 | } |
| 298 | 299 | ||
| 300 | static int p4force; | ||
| 301 | module_param(p4force, int, 0); | ||
| 299 | 302 | ||
| 300 | static int __init p4_init(char ** cpu_type) | 303 | static int __init p4_init(char ** cpu_type) |
| 301 | { | 304 | { |
| 302 | __u8 cpu_model = boot_cpu_data.x86_model; | 305 | __u8 cpu_model = boot_cpu_data.x86_model; |
| 303 | 306 | ||
| 304 | if (cpu_model > 4) | 307 | if (!p4force && (cpu_model > 6 || cpu_model == 5)) |
| 305 | return 0; | 308 | return 0; |
| 306 | 309 | ||
| 307 | #ifndef CONFIG_SMP | 310 | #ifndef CONFIG_SMP |
