mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
x86, xenoprof: Add Nehalem to list of ppro cores
Straight port from Linus's tree: commit 4b9f12a3779c548b68bc9af7d94030868ad3aa1b Author: Linus Torvalds <torvalds@linux-foundation.org> Date: Thu Jul 24 17:29:00 2008 -0700 x86/oprofile/nmi_int: add Nehalem to list of ppro cores ..otherwise oprofile will fall back on that poor timer interrupt. Also replace the unreadable chain of if-statements with a "switch()" statement instead. It generates better code, and is a lot clearer. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
1 parent
b904b98221
commit
c3eade2409
1 file changed
+28
-12
@@ -296,24 +296,40 @@ static int __init ppro_init(char ** cpu_type)
|
||||
{
|
||||
__u8 cpu_model = current_cpu_data.x86_model;
|
||||
|
||||
if (cpu_model == 15 || cpu_model == 23) {
|
||||
switch (cpu_model) {
|
||||
case 0 ... 2:
|
||||
*cpu_type = "i386/ppro";
|
||||
break;
|
||||
case 3 ... 5:
|
||||
*cpu_type = "i386/pii";
|
||||
break;
|
||||
case 6 ... 8:
|
||||
*cpu_type = "i386/piii";
|
||||
break;
|
||||
case 9:
|
||||
*cpu_type = "i386/p6_mobile";
|
||||
break;
|
||||
case 10 ... 13:
|
||||
*cpu_type = "i386/p6";
|
||||
break;
|
||||
case 14:
|
||||
*cpu_type = "i386/core";
|
||||
break;
|
||||
case 15: case 23:
|
||||
*cpu_type = "i386/core_2";
|
||||
ppro_has_global_ctrl = 1;
|
||||
} else if (cpu_model == 14)
|
||||
*cpu_type = "i386/core";
|
||||
else if (cpu_model > 13) {
|
||||
break;
|
||||
case 26:
|
||||
*cpu_type = "i386/core_2";
|
||||
ppro_has_global_ctrl = 1;
|
||||
break;
|
||||
default:
|
||||
/* Unknown */
|
||||
printk("xenoprof: Initialization failed. "
|
||||
"Intel processor model %d for P6 class family is not "
|
||||
"supported\n", cpu_model);
|
||||
return 0;
|
||||
} else if (cpu_model == 9)
|
||||
*cpu_type = "i386/p6_mobile";
|
||||
else if (cpu_model > 5)
|
||||
*cpu_type = "i386/piii";
|
||||
else if (cpu_model > 2)
|
||||
*cpu_type = "i386/pii";
|
||||
else
|
||||
*cpu_type = "i386/ppro";
|
||||
}
|
||||
|
||||
model = &op_ppro_spec;
|
||||
return 1;
|
||||
|
||||