On Thu, Aug 24, 2006 at 01:59:25PM +0000, Philip Mucci wrote:
> Ok, I guess I was thinking that there should be only one descriptor for
> any given name+mask. I better go back and review the discussions as I'm
> guessing I don't understand why there should be more than one.
> 
Because of unit mask combinations which are legal.
For instance on Opteron64: 
        SEGMENT_REGISTER_LOADS:ES:DS

Means count event SEGMENT_REGISTER_LOADS whenever there is either a load
of DS or ES.

In many cases, if you have multiple unit masks, they can be combined.
this is the whole reason we went from a flat representation of events+mask
to a more hierarchical representation where combinations are possible.

The issue is that this is a rather pervasive change.

> 
> On Thu, 2006-08-24 at 06:08 -0700, Stephane Eranian wrote:
> > On Thu, Aug 24, 2006 at 12:45:59PM +0200, Philip Mucci wrote:
> > > Hi Stephane,
> > > 
> > > Why couldn't find event transparently decode event masks?
> > > 
> > We could change the prototype of pfm_find_event() so it
> > return the event and unit mask(s) descriptors. That avoid
> > minize the number of entry points in libpfm but it would
> > break backward compatibility wfor existing applications.
> > I don't care about pfmon, I can fix it quickly. But you
> > have PAPI and probably many others. OTOH, libpfm is
> > still in-flux at the moment, so it is okay to make
> > incompatible changes.
> > 
> > 
> > 
> > > phil
> > > 
> > > On Tue, 2006-08-22 at 03:28 -0700, Stephane Eranian wrote:
> > > > hello,
> > > > 
> > > > As we expose unit masks directly to pplications using the libpfm,
> > > > some interfaces must be extended and/or added to make it easier
> > > > to managed unit masks.
> > > > 
> > > > For instance, in the latest release we have issues on Pentium 4
> > > > for the following function:
> > > >         - pfm_get_cycle_event(): the default cycle event on P4 has a 
> > > > unit
> > > >           mask defined, yet the function does not return it.
> > > > 
> > > > It is not too difficult to see that the other functions might have a
> > > > problems too, such as :
> > > >         - pfm_get_retired_event()
> > > > 
> > > > Similarly, it would be nice to have function that knows directly how to
> > > > deal with event+unit mask all at once:
> > > >         - pfm_find_event()
> > > >         - pfm_get_event_name()
> > > > 
> > > > Let's take the example of pfm_find_event() which takes a string and
> > > > returns in a parameter, the event descriptor. It would be nice to have
> > > > another function (to maintain some backward compatiblity) that can take
> > > > an event string of the form "event_name:unit_mask1:unit_mask2" and 
> > > > return
> > > > both the event descriptor and the list of unit mask descriptors. The
> > > > function prototype could look as follows:
> > > >         int pfm_find_event_and_masks(char *str, pfmlib_event_t *e);
> > > > 
> > > > We could do the same thing for pfm_get_event_name():
> > > >         int pfm_get_event_and_masks_name(pfmlib_event_t *e, char *str, 
> > > > size_t maxlen);
> > > > 
> > > > As for get_cycle_event and get_inst_retired_event, they could be 
> > > > modified
> > > > similarly:
> > > >         - int pfm_get_cycle_event(pfmlib_event_t *e);
> > > >         - int pfm_get_inst_retired_event(pfmlib_event_t *e);
> > > > 
> > > > Any opinion?
> > > > Anybody interested?
> > > > 
> > > > PS: some of the libpfm examples would need to be updated accordingly.
> > > > 
> > > 
> > > _______________________________________________
> > > perfmon mailing list
> > > [email protected]
> > > http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/
> > 

-- 

-Stephane
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/

Reply via email to