Messages in this thread Patch in this message | | | Date | Tue, 17 Mar 2020 16:09:45 +0100 | From | Jiri Olsa <> | Subject | Re: [PATCH v5 08/11] perf/tools: Refactoring metricgroup__add_metric function |
| |
On Tue, Mar 17, 2020 at 11:53:30AM +0530, Kajol Jain wrote: > This patch refactor metricgroup__add_metric function where > some part of it move to function metricgroup__add_metric_param. > No logic change.
can't compile this change:
[jolsa@krava perf]$ make JOBS=1 BUILD: Doing 'make -j1' parallel build CC util/metricgroup.o util/metricgroup.c: In function ‘metricgroup__add_metric_param’: util/metricgroup.c:486:6: error: too many arguments to function ‘expr__find_other’ 486 | if (expr__find_other(pe->metric_expr, NULL, &ids, &idnum, 1) < 0) | ^~~~~~~~~~~~~~~~ In file included from util/metricgroup.c:14: util/expr.h:25:5: note: declared here 25 | int expr__find_other(const char *expr, const char *one, const char ***other, | ^~~~~~~~~~~~~~~~ mv: cannot stat 'util/.metricgroup.o.tmp': No such file or directory make[4]: *** [/home/jolsa/kernel/linux-perf/tools/build/Makefile.build:97: util/metricgroup.o] Error 1 make[3]: *** [/home/jolsa/kernel/linux-perf/tools/build/Makefile.build:139: util] Error 2 make[2]: *** [Makefile.perf:616: perf-in.o] Error 2 make[1]: *** [Makefile.perf:225: sub-make] Error 2 make: *** [Makefile:70: all] Error 2
jirka
> > Signed-off-by: Kajol Jain <kjain@linux.ibm.com> > --- > tools/perf/util/metricgroup.c | 63 +++++++++++++++++++++-------------- > 1 file changed, 38 insertions(+), 25 deletions(-) > > diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c > index c3a8c701609a..b4919bcfbd8b 100644 > --- a/tools/perf/util/metricgroup.c > +++ b/tools/perf/util/metricgroup.c > @@ -474,6 +474,41 @@ static bool metricgroup__has_constraint(struct pmu_event *pe) > return false; > } > > +static int metricgroup__add_metric_param(struct strbuf *events, > + struct list_head *group_list, struct pmu_event *pe) > +{ > + > + const char **ids; > + int idnum; > + struct egroup *eg; > + int ret = -EINVAL; > + > + if (expr__find_other(pe->metric_expr, NULL, &ids, &idnum, 1) < 0) > + return ret; > + > + if (events->len > 0) > + strbuf_addf(events, ","); > + > + if (metricgroup__has_constraint(pe)) > + metricgroup__add_metric_non_group(events, ids, idnum); > + else > + metricgroup__add_metric_weak_group(events, ids, idnum); > + > + eg = malloc(sizeof(*eg)); > + if (!eg) > + ret = -ENOMEM; > + > + eg->ids = ids; > + eg->idnum = idnum; > + eg->metric_name = pe->metric_name; > + eg->metric_expr = pe->metric_expr; > + eg->metric_unit = pe->unit; > + list_add_tail(&eg->nd, group_list); > + ret = 0; > + > + return ret; > +} > + > static int metricgroup__add_metric(const char *metric, struct strbuf *events, > struct list_head *group_list) > { > @@ -493,35 +528,13 @@ static int metricgroup__add_metric(const char *metric, struct strbuf *events, > continue; > if (match_metric(pe->metric_group, metric) || > match_metric(pe->metric_name, metric)) { > - const char **ids; > - int idnum; > - struct egroup *eg; > > pr_debug("metric expr %s for %s\n", pe->metric_expr, pe->metric_name); > > - if (expr__find_other(pe->metric_expr, > - NULL, &ids, &idnum) < 0) > + ret = metricgroup__add_metric_param(events, > + group_list, pe); > + if (ret == -EINVAL) > continue; > - if (events->len > 0) > - strbuf_addf(events, ","); > - > - if (metricgroup__has_constraint(pe)) > - metricgroup__add_metric_non_group(events, ids, idnum); > - else > - metricgroup__add_metric_weak_group(events, ids, idnum); > - > - eg = malloc(sizeof(struct egroup)); > - if (!eg) { > - ret = -ENOMEM; > - break; > - } > - eg->ids = ids; > - eg->idnum = idnum; > - eg->metric_name = pe->metric_name; > - eg->metric_expr = pe->metric_expr; > - eg->metric_unit = pe->unit; > - list_add_tail(&eg->nd, group_list); > - ret = 0; > } > } > return ret; > -- > 2.18.1 >
| |