oprofile: re-add force_arch_perfmon option

This re-adds the force_arch_perfmon option that was in the original
arch perfmon patchkit. Originally this was rejected in favour
of a generalized perfmon=name option, but it turned out implementing
the later in a reliable way is hard (and it would have been easy
to crash the kernel if a user gets it wrong)

But now Atom and Core i7 support being readded a user would
need to update their oprofile userland to beyond 0.9.4 to use oprofile again
on Atom or Core i7.

To avoid this problem readd the force_arch_perfmon option.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Robert Richter <robert.richter@amd.com>
This commit is contained in:
Andi Kleen 2009-04-27 17:44:11 +02:00 committed by Robert Richter
parent 54f2c841fa
commit 1dcdb5a9e7
2 changed files with 12 additions and 0 deletions

View file

@ -1650,6 +1650,12 @@ and is between 256 and 4096 characters. It is defined in the file
oprofile.timer= [HW]
Use timer interrupt instead of performance counters
oprofile.force_arch_perfmon=1 [X86]
Force use of architectural perfmon instead of
the CPU specific event set.
This might be useful if you have older oprofile
userland or if you want common events over Intel CPUs.
osst= [HW,SCSI] SCSI Tape Driver
Format: <buffer_size>,<write_threshold>
See also Documentation/scsi/st.txt.

View file

@ -389,10 +389,16 @@ static int __init p4_init(char **cpu_type)
return 0;
}
int force_arch_perfmon;
module_param(force_arch_perfmon, int, 0);
static int __init ppro_init(char **cpu_type)
{
__u8 cpu_model = boot_cpu_data.x86_model;
if (force_arch_perfmon && cpu_has_arch_perfmon)
return 0;
switch (cpu_model) {
case 0 ... 2:
*cpu_type = "i386/ppro";