Re: [tip:perfcounters/core] perf_counter, x86: remove X86_FEATURE_ARCH_PERFMON flag for AMD cpus

Jaswinder Singh Rajput
2009-05-10T06:53:42Z

On Sun, 2009-05-10 at 08:30 +0200, Ingo Molnar wrote:
> * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:
>
> > > #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */
> > > should be replaced by
> > > #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Performace Monitor */
> > >
> > > All x86 cpus which support performance monitor should set this feature.
> > >
> >
> > Currently X86_FEATURE_ARCH_PERFMON is enabled for >= Intel Core2
> >
> > But Performance monitor is almost supported by all Intel
> > processors. I am adding few MSRs list for reference to see
> > complete list please check arch/x86/kernel/cpu/cpu_debug.c
>
> I think you are confusing two things:
>
> - The 'architectural perfmon' CPU flag, enumerated in CPUID. (this
> is a relatively new CPUID flag that only Intel CPUs at around
> Core2 and later will report.)
>
> - The concept of 'performance monitoring' - which has been present
> in various x86 CPUs starting at the original Pentium (P5) 15 years
> ago or so.
>
> The X86_FEATURE_ARCH_PERFMON flag is for the architectural perfmon
> CPUID feature. If you execute CPUID you'll get that from the CPU -
> on Core2 and later Intel CPUs. You wont get it on AMD CPUs. You wont
> get it on earlier Intel CPUs.
>
> And since 'Architectural Performance Monitoring' is an Intel only
> thing, it would not be correct to do as if AMD had the same thing.
> AMD has something _similar_, but not quite the same.
>

Thanks for clarification.

There is one more way to check performance monitor support for Intel by
using IA32_MISC_ENABLE MSR (0x1A0) bit 7 tells whether performance
monitoring is available or not.

But IA32_MISC_ENABLE MSR (0x1A0) is not available for Pentium and P6.

So better I will add new cpufeature for performance monitoring for x86:

X86_FEATURE_PERFMON : Performance monitor support

--
JSR