From: Andi K. <an...@fi...> - 2010-01-21 22:52:47
|
Add Xeon 7500 series support to oprofile Straight forward: it's the same as Core i7, so just detect the model number. No user space changes needed. Very simple patch, so it could be still merged for .33? Signed-off-by: Andi Kleen <ak...@li...> --- arch/x86/oprofile/nmi_int.c | 1 + 1 file changed, 1 insertion(+) Index: linux/arch/x86/oprofile/nmi_int.c =================================================================== --- linux.orig/arch/x86/oprofile/nmi_int.c +++ linux/arch/x86/oprofile/nmi_int.c @@ -598,6 +598,7 @@ static int __init ppro_init(char **cpu_t case 15: case 23: *cpu_type = "i386/core_2"; break; + case 0x2e: case 26: spec = &op_arch_perfmon_spec; *cpu_type = "i386/core_i7"; |
From: <Val...@vt...> - 2010-01-22 07:24:36
|
On Thu, 21 Jan 2010 23:26:27 +0100, Andi Kleen said: > Add Xeon 7500 series support to oprofile > > Straight forward: it's the same as Core i7, so just detect > the model number. No user space changes needed. > > Very simple patch, so it could be still merged for .33? > > Signed-off-by: Andi Kleen <ak...@li...> > > --- > arch/x86/oprofile/nmi_int.c | 1 + > 1 file changed, 1 insertion(+) > > Index: linux/arch/x86/oprofile/nmi_int.c > =================================================================== > --- linux.orig/arch/x86/oprofile/nmi_int.c > +++ linux/arch/x86/oprofile/nmi_int.c > @@ -598,6 +598,7 @@ static int __init ppro_init(char **cpu_t > case 15: case 23: > *cpu_type = "i386/core_2"; > break; > + case 0x2e: > case 26: > spec = &op_arch_perfmon_spec; > *cpu_type = "i386/core_i7"; I'll bite - why a hex constant rather than the decimal values nearby? Also, should we do something about *cpu_type so it isn't confusing on a 7500 reporting itself as a i7? |
From: Andi K. <an...@fi...> - 2010-01-22 08:36:28
|
> > I'll bite - why a hex constant rather than the decimal values nearby? Why not? > > Also, should we do something about *cpu_type so it isn't confusing on a 7500 > reporting itself as a i7? No, that wouldn't be compatible to oprofile userland. -Andi -- ak...@li... -- Speaking for myself only. |
From: William C. <wc...@re...> - 2010-01-22 16:53:47
|
On 01/21/2010 09:14 PM, Val...@vt... wrote: > On Thu, 21 Jan 2010 23:26:27 +0100, Andi Kleen said: >> Add Xeon 7500 series support to oprofile >> >> Straight forward: it's the same as Core i7, so just detect >> the model number. No user space changes needed. >> >> Very simple patch, so it could be still merged for .33? >> >> Signed-off-by: Andi Kleen<ak...@li...> >> >> --- >> arch/x86/oprofile/nmi_int.c | 1 + >> 1 file changed, 1 insertion(+) >> >> Index: linux/arch/x86/oprofile/nmi_int.c >> =================================================================== >> --- linux.orig/arch/x86/oprofile/nmi_int.c >> +++ linux/arch/x86/oprofile/nmi_int.c >> @@ -598,6 +598,7 @@ static int __init ppro_init(char **cpu_t >> case 15: case 23: >> *cpu_type = "i386/core_2"; >> break; >> + case 0x2e: >> case 26: >> spec =&op_arch_perfmon_spec; >> *cpu_type = "i386/core_i7"; > > > I'll bite - why a hex constant rather than the decimal values nearby? The hex constant 0x2e matches the numbering used in the new "Intel® 64 and IA-32 Architectures Software Developer’s Manual". http://www.intel.com/products/processor/manuals/ http://www.intel.com/Assets/PDF/manual/253669.pdf > Also, should we do something about *cpu_type so it isn't confusing on a 7500 > reporting itself as a i7? According the table A-2 in "Intel® 64 and IA-32 Architectures Software Developer’s Manual" 3b. the core performance events are the same with a few additional events for 06_2eh. However, the uncore events in table A-3 only apply to 06_1AH, 06_1EH, and 06_1FH according to the paragraph at the end of A-2: Intel Xeon processors with CPUID signature of DisplayFamily_DisplayModel 06_2EH have a distinct uncore sub-system that is significantly different from the uncore found in processors with CPUID signature 06_1AH, 06_1EH, and 06_1FH. Non-architectural Performance monitoring events for its uncore will be available in future documentation. -Will |
From: Andi K. <an...@fi...> - 2010-01-27 10:20:45
|
William Cohen <wc...@re...> writes: Please keep me in cc on such threads. >> Also, should we do something about *cpu_type so it isn't confusing on a 7500 >> reporting itself as a i7? > > According the table A-2 in "Intel® 64 and IA-32 Architectures Software > Developers Manual" 3b. the core performance events are the same with a few > additional events for 06_2eh. I believe these additional events are valid for the older Core i7s too. I plan to update the tables at some point. But don't need a new cpu_type for that. > However, the uncore events in table A-3 only apply to 06_1AH, 06_1EH, and 06_1FH > according to the paragraph at the end of A-2: oprofile doesn't support uncore events at this point anyways. -Andi -- ak...@li... -- Speaking for myself only. |
From: John V. <sod...@gm...> - 2010-01-22 16:23:14
|
On Thu, Jan 21, 2010 at 5:26 PM, Andi Kleen <an...@fi...> wrote: > Add Xeon 7500 series support to oprofile > > Straight forward: it's the same as Core i7, so just detect > the model number. No user space changes needed. > > Very simple patch, so it could be still merged for .33? > > Signed-off-by: Andi Kleen <ak...@li...> > > --- > arch/x86/oprofile/nmi_int.c | 1 + > 1 file changed, 1 insertion(+) > > Index: linux/arch/x86/oprofile/nmi_int.c > =================================================================== > --- linux.orig/arch/x86/oprofile/nmi_int.c > +++ linux/arch/x86/oprofile/nmi_int.c > @@ -598,6 +598,7 @@ static int __init ppro_init(char **cpu_t > case 15: case 23: > *cpu_type = "i386/core_2"; > break; > + case 0x2e: > case 26: > spec = &op_arch_perfmon_spec; > *cpu_type = "i386/core_i7"; How about: this instead? Signed-off-by: John L. Villalovos <joh...@in...> diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index cb88b1a..edc074c 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -598,7 +598,7 @@ static int __init ppro_init(char **cpu_type) case 15: case 23: *cpu_type = "i386/core_2"; break; - case 26: + case 26: case 46: spec = &op_arch_perfmon_spec; *cpu_type = "i386/core_i7"; break; |
From: Robert R. <rob...@am...> - 2010-01-25 14:48:53
|
On 22.01.10 11:23:08, John Villalovos wrote: > diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c > index cb88b1a..edc074c 100644 > --- a/arch/x86/oprofile/nmi_int.c > +++ b/arch/x86/oprofile/nmi_int.c > @@ -598,7 +598,7 @@ static int __init ppro_init(char **cpu_type) > case 15: case 23: > *cpu_type = "i386/core_2"; > break; > - case 26: > + case 26: case 46: Hex values fit better here since the spec is using bit values too. Instead, the code should be changed to only use hex values for models with extended model bits set. -Robert -- Advanced Micro Devices, Inc. Operating System Research Center email: rob...@am... |
From: Robert R. <rob...@am...> - 2010-01-25 14:28:03
|
On 21.01.10 23:26:27, Andi Kleen wrote: > Add Xeon 7500 series support to oprofile > > Straight forward: it's the same as Core i7, so just detect > the model number. No user space changes needed. > > Very simple patch, so it could be still merged for .33? Patch applied to oprofile/urgent. I will try to merge it for .33. I would like to see a follow on patch that changes all x86_model values to hex that have the extended model bit set. This would make the code more readable since the spec is also using bit values for this. Thanks. -Robert -- Advanced Micro Devices, Inc. Operating System Research Center email: rob...@am... |
From: Andi K. <an...@fi...> - 2010-01-25 14:35:52
|
> Patch applied to oprofile/urgent. I will try to merge it for .33. Thanks. > > I would like to see a follow on patch that changes all x86_model > values to hex that have the extended model bit set. This would make > the code more readable since the spec is also using bit values for > this. Ok, makes sense. I'll send it later. -Andi -- ak...@li... -- Speaking for myself only. |