Hi Stephane,

I am still looking at this code with the idea of trying to eliminate the 
libpfm4 changes while at the same time not duplicating libpfm4 code in PAPI.

I found the libpfm4 function pfm_get_event_next which I now use to step through 
the events on a pmu when PAPI lists events.  This has eliminated the need for 
PAPI to use the function pfmlib_idx2pidx.

The other libpfm4 funtion which papi is still using is idx2pmu.  This function 
is used by PAPI after listing the last event on a pmu.  It gives PAPI the pmu 
number from the last event processed.  This is needed so we can find the next 
pmu of a particular type then we get the first event from the next pmu to 
continue listing events.

Does libpfm4 provide another way for PAPI to get the next pmu of a particular 
type ??

Maybe a libpfm4 function like pfm_get_pmu_next (int idx) would be the best way 
to solve this problem.

If you like this approach, I can build one and get it working with PAPI.
If you have a different suggestion, please share it.

Thanks
Gary


From: Gary Mohr
Sent: Monday, May 05, 2014 3:41 PM
To: 'Stephane Eranian'
Cc: 'Philip Mucci'; Vince Weaver; 'Heike McCraw'; 
'<perfapi-de...@eecs.utk.edu>'; 'perfmon2-devel'
Subject: RE: [Perfapi-devel] [perfmon2] FW: Proposed enhancement to libpfm4.


Hi Stephane,



Following your suggestions, I have modified PAPI to no longer use 
pfm_find_event().  This has eliminated the problems I was seeing when trying to 
use PFM_OS_PERF_EVENT_EXT through the PAPI API.  I have also restructured PAPI 
to separate the code paths used when listing events and when counting events.  
This has simplified both of these code paths quite a bit.  Currently I only 
have this new code working in the perf_events component but I plan to also put 
the same modifications into the perf_events_uncore component.



While doing this work I found that PAPI needed two functions which exist in 
libpfm4 but were declared as static so they were not available to PAPI.  The 
functions are idx2pmu and pfmlib_idx2pidx.



The attached patch file modifies libpfm4 to make these two functions externally 
visible so that PAPI can use them.



Would be willing to commit this change to libpfm4 or should I replicate the 
source for these two functions in PAPI ?



If you would prefer to provide functions by different names which do the same 
thing, that would be fine with me (the existing names are not really the kind 
of name I would expect to find in a libraries API).



Let me know how you would like to handle this.



Thanks

Gary

------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to