Merge branch 'linus' into perfcounters/core
Conflicts: arch/x86/kernel/irqinit.c arch/x86/kernel/irqinit_64.c arch/x86/kernel/traps.c arch/x86/mm/fault.c include/linux/sched.h kernel/exit.c
This commit is contained in:
@@ -357,14 +357,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
|
||||
@@ -390,10 +387,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";
|
||||
@@ -415,6 +427,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;
|
||||
|
Reference in New Issue
Block a user