On Tue, Oct 4, 2022 at 3:15 PM David Marchand <david.march...@redhat.com> wrote: > > Directly skip the block when a trace point does not match the user > criteria. > > Signed-off-by: David Marchand <david.march...@redhat.com>
Acked-by: Jerin Jacob <jer...@marvell.com> > --- > lib/eal/common/eal_common_trace.c | 34 +++++++++++++++++-------------- > 1 file changed, 19 insertions(+), 15 deletions(-) > > diff --git a/lib/eal/common/eal_common_trace.c > b/lib/eal/common/eal_common_trace.c > index 1db11e3e14..6b8660c318 100644 > --- a/lib/eal/common/eal_common_trace.c > +++ b/lib/eal/common/eal_common_trace.c > @@ -186,15 +186,18 @@ rte_trace_pattern(const char *pattern, bool enable) > int rc = 0, found = 0; > > STAILQ_FOREACH(tp, &tp_list, next) { > - if (fnmatch(pattern, tp->name, 0) == 0) { > - if (enable) > - rc = rte_trace_point_enable(tp->handle); > - else > - rc = rte_trace_point_disable(tp->handle); > - found = 1; > + if (fnmatch(pattern, tp->name, 0) != 0) > + continue; > + > + if (enable) > + rc = rte_trace_point_enable(tp->handle); > + else > + rc = rte_trace_point_disable(tp->handle); > + if (rc < 0) { > + found = 0; > + break; > } > - if (rc < 0) > - return rc; > + found = 1; > } > > return rc | found; > @@ -211,17 +214,18 @@ rte_trace_regexp(const char *regex, bool enable) > return -EINVAL; > > STAILQ_FOREACH(tp, &tp_list, next) { > - if (regexec(&r, tp->name, 0, NULL, 0) == 0) { > - if (enable) > - rc = rte_trace_point_enable(tp->handle); > - else > - rc = rte_trace_point_disable(tp->handle); > - found = 1; > - } > + if (regexec(&r, tp->name, 0, NULL, 0) != 0) > + continue; > + > + if (enable) > + rc = rte_trace_point_enable(tp->handle); > + else > + rc = rte_trace_point_disable(tp->handle); > if (rc < 0) { > found = 0; > break; > } > + found = 1; > } > regfree(&r); > > -- > 2.37.3 >