On Mon, May 25, 2020 at 11:23:00AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, May 25, 2020 at 12:42:05AM +0200, Jiri Olsa escreveu:
> > hi,
> > changes for using metric result in another metric seem
> > to change lot of core metric code, so it's better we
> > have some more tests before we do that.
> > 
> > Sending as RFC as it's still alive and you guys might
> > have some other idea of how to do this.
> > 
> > Also available in here:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
> >   perf/fixes
> 
> I applied the first three patches, will wait a bit for Ian and others to
> have some time to look at it, but one thing I thought was that instead
> of having parse_state->fake_pmu as a bool, you could have it as a
> pointer to the fake pmu, this way we would do away with that static
> thing in the middle of the parsing code.
> 
> +static int check_id(const char *id)
> +{
> +     struct parse_events_error error;
> +     struct evlist *evlist;
> +     int ret;
> +
> +     /* Numbers are always valid. */
> +     if (is_number(id))
> +               return 0;
> +
> +     evlist = evlist__new();
> +     if (!evlist)
> +               return -1;
> +
> +     memset(&error, 0, sizeof(error));
> +       ret = parse_events_fake(evlist, id, &error);
> +       if (ret) {
> +               pr_debug("str        : %s\n", error.str);
> +               pr_debug("help       : %s\n", error.help);
> +               pr_debug("first_str  : %s\n", error.first_str);
> +               pr_debug("first_help : %s\n", error.first_help);
> +       }
> +
> +       evlist__delete(evlist);
> +       free(error.str);
> +     free(error.help);
> +       free(error.first_str);
> +       free(error.first_help);
> +     return ret;
> +}
> 
> 
> Would read:
> 
>       struct perf_pmu fake = { 0, };
>       .
>       .
>       .
>       ret = parse_events_fake_pmu(evlist, id, &fake, &error);

hi,

ok I'll check, but what I'd like to keep is to have the fake pmu
defined in just one place, I was initialy thinking to put it on
the list of pmus, but then it'd appear in other places we dont want,
like perf list ;-)

>       .
>       .
>       .
> 
> 
> That also renames parse_events_fake() to parse_events_fake_pmu().

ok, thanks,
jirka

Reply via email to