On Tue, 2007-10-23 at 08:56 +0800, Zhang, Yanmin wrote:
> On Mon, 2007-10-22 at 05:33 -0700, Stephane Eranian wrote:
> > Hello,
> >
> > On Mon, Oct 22, 2007 at 10:55:08AM +0800, Zhang, Yanmin wrote:
> > > > >
> > > > > Below is the part of dmesg related to perfmon processors
> > > > > identification:
> > > > >
> > > > > perfmon: unsupported CPU model 14
> > > > > perfmon: Intel P6 processor Family PMU detection failed
> > > > > perfmon: unsupported family=6
> > > >
> > > > Normal.
> > > >
> > > > > perfmon: Intel P4 PMU detection failed
> > > >
> > > > Normal
> > > >
> > > > > perfmon: nmi_watchdog=-1 nmi_active=0 force_nmi=0
> > > > > perfmon: PEBS supported, enabled
> > > > > perfmon: Intel Core PMU detected, 4 PMCs, 5 PMDs, 5 counters (31 bits)
> > > > > perfmon: Intel Core PMU installed
> > > >
> > > > Not normal.
> > > >
> > > > > perfmon: detected architecural perfmon v1
> > > > > perfmon: num_gen=2 width=40 num_fixed=0 width=0
> > > > > perfmon: register Intel architectural PMU error -16
> > > >
> > > > That's normal because there is already a description registered.
> > > >
> > > > > Looks like it finds the hardware, but later fails to register it
> > > > > (line with
> > > > > "error -16", -EBUSY. So something like the following to generate some
> > > > > more
> > > > > detail information information from the PFM_INFO's would be useful:
> > > > >
> > > > In perfmon_intel_core.c, look at the :
> > > >
> > > > static int pfm_core_probe_pmu(void)
> > > > {
> > > > unsigned int i;
> > > >
> > > > /*
> > > > * Check for Intel Core processor explicitely
> > > > * Checking for cpu_has_perfmon is not enough as this
> > > > * matches intel Core Duo/Core Solo but none supports
> > > > * PEBS.
> > > > *
> > > > * Intel Core = arch perfmon v2 + PEBS
> > > > */
> > > > if (cpu_data->x86 != 6 || cpu_data->x86_model != 15)
> > > >
> > > > If you come in with 6,14, this should fail. But it seems you have things
> > > > compiled in, so maybe there is something wrong there
> >
> > Could someone instrument pfm_core_probe_pmu() to print out the x86 and
> > x86_model values.
> > After rechecking on my machines, this works fine with me even when
> > everything is compiled
> > in. I do not have a 6/14 machine. Also please try again using the 2.6.23
> > kernel patch so
> > that we compare the same code.
> I Instrumented pfm_core_probe_pmu and my processor famiy is 6, model is 15.
> Below is the log messages.
>
> perfmon: not an AMD processor
> perfmon: AMD64 PMU detection failed
> perfmon: unsupported family=6
> perfmon: Intel P4 PMU detection failed
> YMZ---pfm_core_probe_pmu: x86=6 x86_model=15
> perfmon: nmi_watchdog=0 nmi_active=0 force_nmi=0
> perfmon: PEBS supported, enabled
> perfmon: Intel Core PMU detected, 4 PMCs, 5 PMDs, 5 counters (31 bits)
> perfmon: Intel Core PMU installed
> perfmon: detected architecural perfmon v2
> perfmon: num_gen=2 width=40 num_fixed=3 width=40
> perfmon: register Intel architectural PMU error -16
> perfmon: added sampling format pebs64_p4
> perfmon: added sampling format pebs_core
I recompiled kernel with PMU description file as modules.
By trying to insert module perfmon_intel_arch.ko and perfmon_intel_core.ko, I
found the error -16 was printed by perfmon_intel_arch.ko. So above error log
means
perfmon_intel_core.ko registered firstly, so later perfmon_intel_arch.ko failed
to register with error -16.
However, although I just inserted module perfmon_intel_core.ko with error
messages,
'pfmon ls' still printed 'cannot create event sets: Bad file descriptor'.
yanmin
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/