Stephane Eranian wrote:
Gentlemen,
On Tue, Oct 31, 2006 at 01:59:52PM -0500, William Cohen wrote:
This is being run on a 2.6.18 kernel with the perfmon patchs. The libpfm is
the snapshot from 060926. I don't know if this might be a version issue,
but it can't hurt to include those details. I reconfigured with the
additional option. I also turned on /sys/kernel/perfmon/debug (the
messages.txt file).
PAPI_DEBUG=SUBSTRATE ./utils/papi_command_line PAPI_TOT_CYC >&
/tmp/output.txt
It looks like the actual write to the pmc is the problem. I should add that
when I try to run pfmon after this that the machine locks up. I assumpte
that the is an oops. However, I have a GUI console so I can't see the
specific panic that is occurring on my laptop.
Which machine is this run on, your AMD64 laptop?
Yes, this is an AMD64 laptop.
Oct 31 13:42:08 yugo kernel: perfmon: __pfm_write_pmcs.356: CPU0 [4670]: pmc0
is not implemented/unaccessible
Your are trying to write pmc0. If on AMd64 or P6, pmc0 normally exist UNLESS
you have the NMI watchdog turned
on. Take a look in /sys/kernel/perfmon/pmu_desc, if you do not have a pmc0
subdir, then that is probably the
issue.
I do not know how PAPI uses libpfm, but if you take a look at the examples, you will see that they
pass a bitmask pfp_unavail_pmcs to pfm_dispatch_events(). This is the list of PMC that are not
available. Using this information libpfm, work around the PMC limitations. You
need to populate
the bitmask, in the example subdir, take a look a detect_pmcs.c. I suspect PAPI
is nott doing this, thus
libpfm returns an invalid assignment. Tools cannot assume they own the entire
PMU, they need to query
what's available.
Hope this helps.
Yes, the problem is definitely that pmc0 is not available and the PAPI code is
trying to blindly use it.
What is the magic operation to turn off the nmi watchdog?
-Will
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/