mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
Merge branch 'oprofile-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'oprofile-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: oprofile: introduce module_param oprofile.cpu_type oprofile: add support for Core i7 and Atom oprofile: remove undocumented oprofile.p4force option oprofile: re-add force_arch_perfmon option
This commit is contained in:
commit
57eee9ae7b
@ -1665,6 +1665,14 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
oprofile.timer= [HW]
|
||||
Use timer interrupt instead of performance counters
|
||||
|
||||
oprofile.cpu_type= Force an oprofile cpu type
|
||||
This might be useful if you have an older oprofile
|
||||
userland or if you want common events.
|
||||
Format: { archperfmon }
|
||||
archperfmon: [X86] Force use of architectural
|
||||
perfmon on Intel CPUs instead of the
|
||||
CPU specific event set.
|
||||
|
||||
osst= [HW,SCSI] SCSI Tape Driver
|
||||
Format: <buffer_size>,<write_threshold>
|
||||
See also Documentation/scsi/st.txt.
|
||||
|
@ -356,14 +356,11 @@ static void exit_sysfs(void)
|
||||
#define exit_sysfs() do { } while (0)
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
static int p4force;
|
||||
module_param(p4force, int, 0);
|
||||
|
||||
static int __init p4_init(char **cpu_type)
|
||||
{
|
||||
__u8 cpu_model = boot_cpu_data.x86_model;
|
||||
|
||||
if (!p4force && (cpu_model > 6 || cpu_model == 5))
|
||||
if (cpu_model > 6 || cpu_model == 5)
|
||||
return 0;
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
@ -389,10 +386,25 @@ static int __init p4_init(char **cpu_type)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int force_arch_perfmon;
|
||||
static int force_cpu_type(const char *str, struct kernel_param *kp)
|
||||
{
|
||||
if (!strcmp(str, "archperfmon")) {
|
||||
force_arch_perfmon = 1;
|
||||
printk(KERN_INFO "oprofile: forcing architectural perfmon\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
module_param_call(cpu_type, force_cpu_type, NULL, NULL, 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";
|
||||
@ -414,6 +426,13 @@ static int __init ppro_init(char **cpu_type)
|
||||
case 15: case 23:
|
||||
*cpu_type = "i386/core_2";
|
||||
break;
|
||||
case 26:
|
||||
arch_perfmon_setup_counters();
|
||||
*cpu_type = "i386/core_i7";
|
||||
break;
|
||||
case 28:
|
||||
*cpu_type = "i386/atom";
|
||||
break;
|
||||
default:
|
||||
/* Unknown */
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user