lkml.org 
[lkml]   [2015]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf probe: Accept multiple filter options
    Commit-ID:  96b55e39237b8bc92d8e6b96f896c106f2d39cf6
    Gitweb: http://git.kernel.org/tip/96b55e39237b8bc92d8e6b96f896c106f2d39cf6
    Author: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    AuthorDate: Fri, 24 Apr 2015 18:47:48 +0900
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Mon, 4 May 2015 12:43:55 -0300

    perf probe: Accept multiple filter options

    Accept multiple filter options. Each filters are combined by logical-or.
    E.g. --filter abc* --filter *def is same as --filter abc*|*def

    Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20150424094748.23967.63355.stgit@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-probe.c | 14 +++++++++-----
    1 file changed, 9 insertions(+), 5 deletions(-)

    diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
    index 92dcce0..be17075 100644
    --- a/tools/perf/builtin-probe.c
    +++ b/tools/perf/builtin-probe.c
    @@ -262,21 +262,25 @@ static int opt_set_filter(const struct option *opt __maybe_unused,
    const char *str, int unset __maybe_unused)
    {
    const char *err;
    + int ret = 0;

    if (str) {
    pr_debug2("Set filter: %s\n", str);
    - if (params.filter)
    - strfilter__delete(params.filter);
    - params.filter = strfilter__new(str, &err);
    if (!params.filter) {
    + params.filter = strfilter__new(str, &err);
    + if (!params.filter)
    + ret = err ? -EINVAL : -ENOMEM;
    + } else
    + ret = strfilter__or(params.filter, str, &err);
    +
    + if (ret == -EINVAL) {
    pr_err("Filter parse error at %td.\n", err - str + 1);
    pr_err("Source: \"%s\"\n", str);
    pr_err(" %*c\n", (int)(err - str + 1), '^');
    - return -EINVAL;
    }
    }

    - return 0;
    + return ret;
    }

    static int init_params(void)

    \
     
     \ /
      Last update: 2015-05-06 05:21    [W:4.151 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site