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:
Ingo Molnar
2009-06-11 17:55:42 +02:00
449 changed files with 17886 additions and 8596 deletions

View File

@@ -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;