Corey, On Sun, Aug 23, 2009 at 4:00 AM, Corey Ashford<cjash...@linux.vnet.ibm.com> wrote: > Hello, > > On Friday, we decided to double check that the recently checked-in changes > for Power7 are working for perfmon2 (and perf_counters). > good idea.
> So I set up a system with the latest 2.6.30 perfmon2 kernel, latest > libpfm, and latest PAPI code. I ran the PAPI tests and immediately > had a number of problems. > > The first problem is that there are missing groups in the power7_events.h > file due to an error in the source file that I use > to generate the C code. This can be corrected easily, and I will > submit a patch later for it early next week. > > The second problem is that is that the mapping from PAPI events > to native events required too many native events for PAPI_FP_OPS. > This works OK for perf_counters, since it doesn't use the group > tables to determine the values for the mmcr registers. However, > the dispatch implementation in libpfm does use the groups, and there > didn't exist a group containing all of the needed events. I can > work around this by just removing one of the events so that a > matching group can be found. We can probably generate a new > group containing the needed event, and I will work on creating > such a patch. (another solution would be to port the > perf_counters code to libpfm, but that would be quite a lot > of work) > > I left the worst for last: even running a simple test like > libpfm/examples_v2.x/self, I get very inconsistent counts. > Sometimes I get zeros! The numbers I get are almost always > consistently less than they should be, which leads me to > suspect that the pmd registers are getting zeroed out > somewhere where they shouldn't be. > > I wasn't sure if this was due to some difference between Power7 > and earlier chips, so I went and set up the same experiment > on a Power5 machine, and the problem replicates there too. > So this isn't a Power7-specific problem. Something changed > between 2.6.29 and 2.6.30. When I run the same experiment on > a perfmon2 2.6.29 kernel, the results are very consistent and > look correct. > > I diffed the Power-specific source files that might have had some > changes: > arch/powerpc/perfmon/perfmon.c and > arch/powerpc/perfmon/perfmon_power5.c > but there are no differences between 2.6.29 and 2.6.30. > I don't see any major changes. Here are a couple of tests you could try and run to narrow it down: - taskset -c 0 self - syst Do those produce more stable and valid results? > Stephane, can you think of anything that you had to do in porting > perfmon2 to 2.6.30 that might be causing this? > Not enough data to figure it out. > Can you run examples_v2.x/self on x86 to see if you are seeing > the same issue? > I did and it is stable and correct. So must be something in the Power code or something in the generic code which impacts only Power. ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel