From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Thomas Richter <tmricht@linux.ibm.com>,
Namhyung Kim <namhyung@kernel.org>
Cc: sumanth Korikkar <sumanthk@linux.ibm.com>,
Jiri Olsa <jolsa@kernel.org>, Heiko Carstens <hca@linux.ibm.com>,
"linux-perf-use." <linux-perf-users@vger.kernel.org>
Subject: Re: perf list dumps core using 5.13.0.rc2
Date: Wed, 19 May 2021 13:26:23 -0300 [thread overview]
Message-ID: <YKU8L/v7BDobrzBb@kernel.org> (raw)
In-Reply-To: <555b92bd-1884-58a7-76fd-7dd197978436@linux.ibm.com>
Em Wed, May 19, 2021 at 04:57:05PM +0200, Thomas Richter escreveu:
> Using kernel 5.13.0.rc2 command perf list dumps core on my x86
> virtual machine:
>
> [root@f34 perf]# ./perf list
> Segmentation fault (core dumped)
> ^C
> [root@f34 perf]#
>
> The root case this this change in file ../include/uapi/linux/perf_event.h:
> enum perf_sw_ids {
> PERF_COUNT_SW_CPU_CLOCK = 0,
> ...
> ---> PERF_COUNT_SW_CGROUP_SWITCHES = 11,
>
> PERF_COUNT_SW_MAX, /* non-ABI */
> };
>
> This change increases PERF_COUNT_SW_MAX to 12. However this
> change is not reflected in file util/parse-events.c where data structure
>
> struct event_symbol event_symbols_sw[PERF_COUNT_SW_MAX] = {
> ....
> }
>
> is defined and it misses the symbol name and alias for this new software
Sure, it is not there, but then PERF_COUNT_SW_MAX is used in the array
definition, so it ends up having
event_symbols_sw[PERF_COUNT_SW_MAX].symbol == NULL
> event. So when command 'perf list' is called, the call chain sequence
> is
> cmd_list()
> print_events()
> print_symbol_events(event_glob, PERF_TYPE_SOFTWARE,
> event_symbols_sw, PERF_COUNT_SW_MAX, name_only);
>
> where PERF_COUNT_SW_MAX is 12 and structure event_symbols_sw[] contains
> only 11 elements. This ends up with the last element of the array being
> all zeroes and the line:
>
> if (!name_only && strlen(syms->alias))
But before this we have:
if (event_glob != NULL && syms->symbol != NULL &&
!(strglobmatch(syms->symbol, event_glob) ||
(syms->alias && strglobmatch(syms->alias, event_glob))))
continue;
We need to move that syms->symbol != NULL part to be the first one and
continue if that array entry isn't populated, I'll add a patch with your
Reported-by:
I was scratching my head looking why I hadn't hit this, it doesn't
support PERF_COUNT_SW_CGROUP_SWITCHES so it bails out at
!is_event_supported(type, i):
for (i = 0; i < max; i++, syms++) {
if (event_glob != NULL && syms->symbol != NULL &&
!(strglobmatch(syms->symbol, event_glob) ||
(syms->alias && strglobmatch(syms->alias, event_glob))))
continue;
if (!is_event_supported(type, i))
continue;
if (!evt_num_known) {
evt_num++;
continue;
}
if (!name_only && strlen(syms->alias))
>
> dumps core because syms->alias is a NULL pointer.
>
> Is this dummy event PERF_COUNT_SW_CGROUP_SWITCHES simply missing in the
> event_symbols_sw[] array or is there more to it (which I am missing).
>
> Thanks.
>
> PS: I can sent a patch if needed....
>
> --
> Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany
> --
> Vorsitzender des Aufsichtsrats: Gregor Pillen
> Geschäftsführung: Dirk Wittkopp
> Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
--
- Arnaldo
next prev parent reply other threads:[~2021-05-19 16:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-19 14:57 perf list dumps core using 5.13.0.rc2 Thomas Richter
2021-05-19 16:26 ` Arnaldo Carvalho de Melo [this message]
2021-05-19 17:00 ` Arnaldo Carvalho de Melo
2021-05-19 16:27 ` Ian Rogers
2021-05-19 17:18 ` Arnaldo Carvalho de Melo
2021-05-20 6:35 ` Thomas Richter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YKU8L/v7BDobrzBb@kernel.org \
--to=acme@kernel.org \
--cc=hca@linux.ibm.com \
--cc=jolsa@kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=sumanthk@linux.ibm.com \
--cc=tmricht@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.