[GIT PULL 00/22] perf/core improvements and fixes

From: Arnaldo Carvalho de Melo
Date: Fri Feb 19 2016 - 17:46:45 EST


Hi Ingo,

Please consider pulling,

- Arnaldo

The following changes since commit 3b364d7b587db0f0eeafde0f271e0698187de776:

perf/core: Remove unused arguments from a bunch of functions (2016-02-17 10:37:48 +0100)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo

for you to fetch changes up to 5b2ea6f2f6ac81a230e6cc68e1473e796a583f00:

perf report: Check error during report__collapse_hists() (2016-02-19 19:17:50 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Add 'perf record' --all-user/--all-kernel options, so that one can tell
that all the events in the command line should be restricted to the user
or kernel levels (Jiri Olsa), i.e.:

perf record -e cycles:u,instructions:u

is equivalent to:

perf record --all-user -e cycles,instructions

- Fix percentage update on key press, due to the buffering code
(that creates hist_entries that will later be consumed) touching
per hists state that is used by the display thread (Namhyung Kim)

- Bail out when event modifiers not supported by 'perf stat' are
specified, i.e.: (Wang Nan)

# perf stat -e cycles/no-inherit/ usleep 1
event syntax error: 'cycles/no-inherit/'
\___ 'no-inherit' is not usable in 'perf stat'
# perf stat -e cycles/foo/ usleep 1
event syntax error: 'cycles/foo/'
\___ unknown term

valid terms: config,config1,config2,name
#

- Enable setting names for legacy cache, raw and numeric events, e.g: (Wang Nan)

# perf record -e cycles -e 4:0x6530160/name=evtx,call-graph=fp/ -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.659 MB perf.data (844 samples) ]
# perf evlist
cycles
evtx
#

Miscelaneous/Infrastructure:

- Handled scaled == -1 case for counters in 'perf stat', fixing
recent, only in perf/core, regression (Andi Kleen)

- Reference count the cpu and thread maps at set_maps(), fixing the
'object code reading' 'perf test' entry when it was requesting a
perf_event_attr.sample_freq > /proc/sys/kernel/perf_event_max_sample_rate
(Arnaldo Carvalho de Melo)

- Improve perf_evlist__strerror_open() to provide hints for -EINVAL due
to perf_event_attr.sample_freq > /proc/sys/kernel/perf_event_max_sample_rate
(Arnaldo Carvalho de Melo)

- Add checks to various callchain and histogram routines (Namhyung Kim)

- Fix checking asprintf return value when parsing additional event config terms (Wang Nan)

Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

----------------------------------------------------------------
Andi Kleen (1):
perf stat: Handled scaled == -1 case for counters

Arnaldo Carvalho de Melo (5):
perf evlist: Reference count the cpu and thread maps at set_maps()
perf evlist: Handle -EINVAL for sample_freq > max_sample_rate in strerror_open()
perf tests: Use perf_evlist__strerror_open() to provide hints about max_freq
perf test: Reduce the sample_freq for the 'object code reading' test
perf tools: Introduce opt_event_config nonterminal

Jiri Olsa (1):
perf record: Add --all-user/--all-kernel options

Namhyung Kim (8):
perf hists browser: Fix percentage update on key press
perf callchain: Check return value of add_child()
perf callchain: Check return value of fill_node()
perf callchain: Add enum match_result for match_chain()
perf callchain: Check return value of split_add_child()
perf callchain: Check return value of append_chain_children()
perf hists: Return error from hists__collapse_resort()
perf report: Check error during report__collapse_hists()

Wang Nan (7):
perf bpf: Rename bpf_prog_priv__clear() to clear_prog_priv()
perf tools: Fix checking asprintf return value
perf tools: Create config_term_names array
perf stat: Bail out on unsupported event config modifiers
perf tools: Rename and move pmu_event_name to get_config_name
perf tools: Enable config raw and numeric events
perf tools: Enable config and setting names for legacy cache events

tools/perf/Documentation/perf-record.txt | 6 ++
tools/perf/builtin-record.c | 6 ++
tools/perf/builtin-report.c | 14 ++-
tools/perf/builtin-stat.c | 3 +-
tools/perf/perf.h | 2 +
tools/perf/tests/code-reading.c | 10 +-
tools/perf/tests/parse-events.c | 52 ++++++++++
tools/perf/util/bpf-loader.c | 6 +-
tools/perf/util/callchain.c | 102 +++++++++++++-----
tools/perf/util/evlist.c | 24 ++++-
tools/perf/util/evsel.c | 10 ++
tools/perf/util/hist.c | 55 +++++++---
tools/perf/util/hist.h | 6 +-
tools/perf/util/parse-events.c | 173 ++++++++++++++++++++++++++-----
tools/perf/util/parse-events.h | 8 +-
tools/perf/util/parse-events.l | 3 +-
tools/perf/util/parse-events.y | 75 +++++++-------
17 files changed, 426 insertions(+), 129 deletions(-)