On Mon, Apr 12, 2021 at 10:51:14AM +0800, Jin, Yao wrote:

SNIP

> 
> Do you suggest we just use string comparison for doing the direct check?
> 
> e.g.
> 
> if (strstr(term->config, "L1-dcache"))
>       ...
> 
> Of course, we can define a string array first and use a loop for string 
> comparison.
> 
> > > + if (!parse_state->fake_pmu && head_config && !found &&
> > > +     perf_pmu__is_hybrid(name)) {
> > > +         struct parse_events_term *term;
> > > +         int ret;
> > > +
> > > +         list_for_each_entry(term, head_config, list) {
> > > +                 if (!term->config)
> > > +                         continue;
> > > +
> > > +                 ret = parse_events__with_hybrid_pmu(parse_state,
> > > +                                                     term->config,
> > > +                                                     name, &found,
> > > +                                                     list);
> > 
> > do we need to call the parsing again? could we just call
> > parse_events__add_cache_hybrid?
> > 
> > jirka
> > 
> > 
> 
> If we do the direct check for cache events, I think we don't need the parsing 
> again.
> 
> As I mentioned above, we need to define a string array and compare with 
> term->config one by one.
> 

maybe another way is to find a way to run just the lexer (without
parser) and check that it returns PE_NAME_CACHE_OP_RESULT

jirka

Reply via email to