Skip to content

fix some perf issues detected by ASan

Changbin Du bpf lkml netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 8 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16perf: add doc for how to build perf with Asan and UBSantools/perf/Documentation/Build.txt+20 -04 replies
2/16perf: list: fix memory leak in function is_event_supportedtools/perf/util/parse-events.c+1 -00 replies
3/16perf: fix errors under optimization level '-Og'tools/lib/bpf/libbpf.c tools/perf/bench/epoll-ctl.c tools/perf/bench/epoll-wait.c +1 more+4 -40 replies
4/16perf: fix an error in config templatetools/perf/Documentation/perf-config.txt+1 -10 replies
5/16perf: fix a memory leak in collect_configtools/perf/util/config.c+1 -20 replies
6/16perf: fix memory leak in print_sdt_events()tools/perf/util/build-id.c tools/perf/util/parse-events.c+2 -00 replies
7/16perf: top: fix heap-use-after-free issuetools/perf/builtin-top.c+19 -231 reply
8/16perf: top: fix error handing in cmd_top()tools/perf/builtin-top.c+3 -20 replies
9/16perf: missed a map__put() in error casetools/perf/util/hist.c+3 -10 replies
10/16perf: remove map from names tree in __maps__removetools/perf/util/map.c+3 -00 replies
11/16perf: purge all maps from the names treetools/perf/util/map.c+15 -00 replies
12/16perf: top: fix global-buffer-overflow issuetools/perf/util/ordered-events.c+2 -00 replies
13/16perf: free all counts in perf_evsel__exittools/perf/util/counts.c tools/perf/util/counts.h tools/perf/util/evsel.c +1 more+24 -181 reply
14/16perf: fix a memory leak of cpu_map objecttools/perf/tests/openat-syscall-all-cpus.c+3 -10 replies
15/16perf: fix memory leak by expr__find_othertools/perf/tests/expr.c+4 -10 replies
16/16perf: fix a memory leak in test__perf_evsel__tp_sched_testtools/perf/tests/evsel-tp-sched.c+1 -00 replies

Reviews trailers per patch

None of the 16 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchJiri Olsa
SeriesR-b
1/16
2/16
3/16
4/16
5/16
6/16
7/16
8/16
9/16
10/16
11/16
12/16
13/16
14/16
15/16
16/16

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/16] fix some perf issues detected by ASan

AddressSanitizer (or ASan) and UndefinedBehaviorSanitizer (or UBSan) are very useful tools to detect program bugs. This series fixed some issues disclosed by ASan.

AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs such as buffer overflows or memory leaks.

  $ cd tools/perf
  $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address'
  $ ASAN_OPTIONS=log_path=asan.log ./perf record -a
ASan outputs all detected issues into log file 'asan.log.<pid>'.

Note that this only fixes parts of the detected issues. There are many remaining to be fixed[1].

[1] http://104.238.181.70:8080/asan.log.32555.txt

Changbin Du (16):
perf: add doc for how to build perf with Asan and UBSan
perf: list: fix memory leak in function is_event_supported
perf: fix errors under optimization level '-Og'
perf: fix an error in config template
perf: fix a memory leak in collect_config
perf: fix memory leak in print_sdt_events()
perf: top: fix heap-use-after-free issue
perf: top: fix error handing in cmd_top()
perf: missed a map__put() in error case
perf: remove map from names tree in __maps__remove
perf: purge all maps from the names tree
perf: top: fix global-buffer-overflow issue
perf: free all counts in perf_evsel__exit
perf: fix a memory leak of cpu_map object
perf: fix memory leak by expr__find_other
perf: fix a memory leak in test__perf_evsel__tp_sched_test

 tools/lib/bpf/libbpf.c                     |  2 +-
 tools/perf/Documentation/Build.txt         | 20 +++++++++
 tools/perf/Documentation/perf-config.txt   |  2 +-
 tools/perf/bench/epoll-ctl.c               |  2 +-
 tools/perf/bench/epoll-wait.c              |  2 +-
 tools/perf/builtin-top.c                   | 47 ++++++++++------------
 tools/perf/tests/backward-ring-buffer.c    |  2 +-
 tools/perf/tests/evsel-tp-sched.c          |  1 +
 tools/perf/tests/expr.c                    |  5 ++-
 tools/perf/tests/openat-syscall-all-cpus.c |  4 +-
 tools/perf/util/build-id.c                 |  1 +
 tools/perf/util/config.c                   |  3 +-
 tools/perf/util/counts.c                   | 18 +++++++++
 tools/perf/util/counts.h                   |  4 ++
 tools/perf/util/evsel.c                    |  2 +
 tools/perf/util/hist.c                     |  4 +-
 tools/perf/util/map.c                      | 18 +++++++++
 tools/perf/util/ordered-events.c           |  2 +
 tools/perf/util/parse-events.c             |  2 +
 tools/perf/util/stat.c                     | 18 ---------
 20 files changed, 106 insertions(+), 53 deletions(-)
Signature · 1 line
2.19.1