stephane eranian wrote:
> Corey,
> 
> We still need to settle on the user interface to extract default
> information (and maybe aliases information).
> 
> Here is what I have today:
> 
> typedef struct {
>         const char *name;
>         const char *desc;
>         const char *alias;
>         pfm_pmu_t pmu;
>         int idx;
>         int nattrs;
>         int size;
>         uint64_t code;
>         struct {
>                 int is_alias:1;
>                 int reserved:31;
>         };
>         uint64_t reserved[9];
> } pfm_event_info_t;
>

You could get rid of is_alias if .alias doubled as a sentinel: alias points to 
an event name string if this event is an alias, and is NULL otherwise.

> typedef struct {
>         const char *name;
>         const char *desc;
>         const char *alias;
>         pfm_attr_t type;
>         struct {
>                 int is_dfl:1; /* is default */
>                 int is_alias:1;
>                 int reserved:30;
>         };
>         int idx;
>         int size;
>         uint64_t code;
>         union {
>                 uint64_t dfl_val64;
>                 const char *dfl_str;
>                 int dfl_bool;
>                 int dfl_int;
>         };
>         uint64_t reserved1[6];
> } pfm_event_attr_info_t;
> 
> int pfm_get_event_info(int idx, pfm_event_info_t *info);
> int pfm_get_event_attr_info(int idx, int attr_idx, pfm_event_attr_info_t 
> *info);
> 
> 
> Notice the new is_alias and the alias string which is valid only if is_alias
> is set. it contains the event string describing how the alias build on the
> original event, e.g., with hardwired modifiers.

You could get rid of is_alias here too.

I'm not convinced it's necessary, but I don't see a way for the tool to be able 
to tell that a set of attributes are part of a group from which one alternative 
must be chosen.

Otherwise, the interface looks like it has everything that's needed, and would 
be straight-forward to use.

Just to pick a nit here... do you think "alias" is the best name for the 
mechanism?  To me, alias means "another name for the same thing", and that's 
not 
really what this mechanism is doing.  It denotes a variation of an existing 
event (or attribute).  In some cases, the variation may expand the what events 
are counted, and in other cases contract them, or in some cases measure 
different things.  Maybe you could use "variant_of" (or just "variant") instead?

Regards,

- Corey

Corey Ashford
Software Engineer
IBM Linux Technology Center, Linux Toolchain
Beaverton, OR
503-578-3507
cjash...@us.ibm.com


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to