Skip to content

Commit

Permalink
oprofile: re-add force_arch_perfmon option
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Andi Kleen authored and Robert Richter committed May 8, 2009
1 parent 54f2c84 commit 1dcdb5a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 6 additions & 0 deletions arch/x86/oprofile/nmi_int.c
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down

0 comments on commit 1dcdb5a

Please sign in to comment.