On Fri, Sep 04, 2015 at 11:52:33AM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote: > > From: Namhyung Kim [mailto:[email protected]] > > > > The del_perf_probe_events() does 2 things: > > > > 1. find existing events which match to filter > > 2. delete such trace events from kernel > > > > But sometimes we need to do something with the trace events. So split > > the funtion into two, so that it can access intermediate trace events > > name using strlist if needed. > > > > Ok, but I think it might be better merged to 5/5.
I'm fine with merging them. Arnaldo, I'll keep it separate now just in case, but you can merge them if you want. Thanks, Namhyung > > Acked-by: Masami Hiramatsu <[email protected]> > > Thanks, > > > > Cc: Masami Hiramatsu <[email protected]> > > Signed-off-by: Namhyung Kim <[email protected]> > > --- > > tools/perf/util/probe-file.c | 40 ++++++++++++++++++++++++++++++++++++---- > > 1 file changed, 36 insertions(+), 4 deletions(-) > > > > diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c > > index bbb243717ec8..f00b0df56dfe 100644 > > --- a/tools/perf/util/probe-file.c > > +++ b/tools/perf/util/probe-file.c > > @@ -275,7 +275,8 @@ static int __del_trace_probe_event(int fd, struct > > str_node *ent) > > return ret; > > } > > > > -int probe_file__del_events(int fd, struct strfilter *filter) > > +static int probe_file__get_events(int fd, struct strfilter *filter, > > + struct strlist *plist) > > { > > struct strlist *namelist; > > struct str_node *ent; > > @@ -290,12 +291,43 @@ int probe_file__del_events(int fd, struct strfilter > > *filter) > > p = strchr(ent->s, ':'); > > if ((p && strfilter__compare(filter, p + 1)) || > > strfilter__compare(filter, ent->s)) { > > - ret = __del_trace_probe_event(fd, ent); > > - if (ret < 0) > > - break; > > + strlist__add(plist, ent->s); > > + ret = 0; > > } > > } > > strlist__delete(namelist); > > > > return ret; > > } > > + > > +static int probe_file__del_strlist(int fd, struct strlist *namelist) > > +{ > > + int ret = 0; > > + struct str_node *ent; > > + > > + strlist__for_each(ent, namelist) { > > + ret = __del_trace_probe_event(fd, ent); > > + if (ret < 0) > > + break; > > + } > > + return ret; > > +} > > + > > +int probe_file__del_events(int fd, struct strfilter *filter) > > +{ > > + struct strlist *namelist; > > + int ret; > > + > > + namelist = strlist__new(NULL, NULL); > > + if (!namelist) > > + return -ENOMEM; > > + > > + ret = probe_file__get_events(fd, filter, namelist); > > + if (ret < 0) > > + return ret; > > + > > + ret = probe_file__del_strlist(fd, namelist); > > + strlist__delete(namelist); > > + > > + return ret; > > +} > > -- > > 2.5.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

