aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-07-10 11:06:21 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-10 18:12:33 -0400
commit1cfcea1b2d67987ddb84dc75f454321bcf536555 (patch)
tree0a64e00386cafff9c55cd675927a00064f3d4cd3 /arch
parent46f6976101c359202422753d15955f67aafabe2b (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>
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/oprofile/nmi_int.c5
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
300static int p4force;
301module_param(p4force, int, 0);
299 302
300static int __init p4_init(char ** cpu_type) 303static 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