[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150831192003.GA2443@redhat.com>
Date: Mon, 31 Aug 2015 16:20:03 -0300
From: Arnaldo Carvalho de Melo <acme@...hat.com>
To: Jiri Olsa <jolsa@...nel.org>
Cc: Wang Nan <wangnan0@...wei.com>, mingo@...nel.org, ast@...mgrid.com,
linux-kernel@...r.kernel.org, lizefan@...wei.com, pi3orama@....com,
Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
Namhyung Kim <namhyung@...nel.org>
Subject: Re: [PATCH 02/31] perf tools: Don't set cmdline_group_boundary if no
evsel is collected
Em Sat, Aug 29, 2015 at 04:21:36AM +0000, Wang Nan escreveu:
> If parse_events__scanner() collects no entry, perf_evlist__last(evlist)
> is invalid. Then setting of cmdline_group_boundary touches invalid.
>
> It could happend in currect BPF implementation. See [1]. Although it
> can be fixed, for safety reason it whould be better to introduce this
> check.
>
> Instead of checking number of entries, check data.list instead, so we
> can add dummy evsel here.
Event parsing fixes should have Jiri Olsa on the CC list, Jiri, is this
ok?
>From what I can see it looks Ok, my question, just from looking at this
patch, is if it is valid to get to this point with an empty data.list,
i.e. was it ever possible and this is a bug irrespective of eBPF?
- Arnaldo
> [1]: http://lkml.kernel.org/n/1436445342-1402-19-git-send-email-wangnan0@huawei.com
>
> Signed-off-by: Wang Nan <wangnan0@...wei.com>
> Cc: Alexei Starovoitov <ast@...mgrid.com>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
> Cc: Namhyung Kim <namhyung@...nel.org>
> Cc: Zefan Li <lizefan@...wei.com>
> Cc: pi3orama@....com
> Cc: Arnaldo Carvalho de Melo <acme@...hat.com>
> Link: http://lkml.kernel.org/r/1440742821-44548-3-git-send-email-wangnan0@huawei.com
> ---
> tools/perf/util/parse-events.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index d826e6f..14cd7e3 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -1143,10 +1143,14 @@ int parse_events(struct perf_evlist *evlist, const char *str,
> int entries = data.idx - evlist->nr_entries;
> struct perf_evsel *last;
>
> + if (!list_empty(&data.list)) {
> + last = list_entry(data.list.prev,
> + struct perf_evsel, node);
> + last->cmdline_group_boundary = true;
> + }
> +
> perf_evlist__splice_list_tail(evlist, &data.list, entries);
> evlist->nr_groups += data.nr_groups;
> - last = perf_evlist__last(evlist);
> - last->cmdline_group_boundary = true;
>
> return 0;
> }
> --
> 2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists