* [GIT PULL 00/16] perf/core improvements and fixes @ 2016-01-29 21:17 Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 01/16] tools build: Check basic headers for test-compile feature checker Arnaldo Carvalho de Melo ` (16 more replies) 0 siblings, 17 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Alexander Yarygin, Alexei Starovoitov, Al Grant, Brendan Gregg, Chunyan Zhang, Daniel Borkmann, David Ahern, He Kuang, Hemant Kumar, Jiri Olsa, linux-arm-kernel, linux-doc, linuxppc-dev, Li Zefan, Masami Hiramatsu, Mathieu Poirier, Michael Ellerman, Mike Leach, Namhyung Kim, Naveen N . Rao, Paul Mackerras, Peter Zijlstra, pi3orama, Rabin Vincent, Scott Wood, Srikar Dronamraju, Tor Jeremiassen, Wang Nan, Will Deacon, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html Hi Ingo, This is on top of the previously submitted perf-core-for-mingo tag, please consider applying, - Arnaldo The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262: perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2 for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10: perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300) ---------------------------------------------------------------- New features: - Port 'perf kvm stat' to PowerPC (Hemant Kumar) Infrastructure: - Use the 'feature-dump' target to do the feature checks just once and then add code to reuse that in the tests/make makefile, speeding up the 'make -C tools/perf build-test' target (Wang Nan) - Reduce the number of tests the 'build-test' target do to those that don't pollute the source tree (Arnaldo Carvalho de Melo) - Improve the output of the build tests a bit by aligning the name of the tests, more can be done to filter out uninteresting info in the output (Arnaldo Carvalho de Melo) - Add perf_evlist pointer to *info_priv_size(), more prep work for supporting the coresight architecture (Mathieu Poirier) - Improve the 'perf test bp_signal' test (Wang Nan) - Check environment before starting the BPF 'perf test', so that we can just 'Skip' older kernels instead of 'FAIL'ing them (Wang Nan) - Fix cpumode of synthesized buildid event (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (2): perf tools: Speed up build-tests by reducing the number of builds tested perf build: Align the names of the build tests: Hemant Kumar (4): perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h perf kvm/{x86,s390}: Remove const from kvm_events_tp perf kvm/powerpc: Port perf kvm stat to powerpc perf kvm/powerpc: Add support for HCALL reasons Jiri Olsa (1): perf build: Fix feature-dump checks, we need to test all features Mathieu Poirier (1): perf auxtrace: Add perf_evlist pointer to *info_priv_size() Wang Nan (8): tools build: Check basic headers for test-compile feature checker perf build: Remove all condition feature check {C,LD}FLAGS perf build: Use feature dump file for build-test perf buildid: Fix cpumode of buildid event perf test: Check environment before start real BPF test perf test: Improve bp_signal perf tools: Move timestamp creation to util perf record: Use OPT_BOOLEAN_SET for buildid cache related options tools/build/Makefile.feature | 8 ++ tools/build/feature/test-compile.c | 2 + tools/perf/Makefile | 11 +- tools/perf/arch/powerpc/Makefile | 2 + tools/perf/arch/powerpc/util/Build | 1 + tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++ tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++ tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++ tools/perf/arch/s390/util/kvm-stat.c | 10 +- tools/perf/arch/x86/util/intel-bts.c | 4 +- tools/perf/arch/x86/util/intel-pt.c | 4 +- tools/perf/arch/x86/util/kvm-stat.c | 16 ++- tools/perf/builtin-buildid-cache.c | 14 +- tools/perf/builtin-kvm.c | 38 ++++-- tools/perf/builtin-record.c | 12 +- tools/perf/config/Makefile | 101 +++++++-------- tools/perf/tests/bp_signal.c | 140 ++++++++++++++++---- tools/perf/tests/bpf.c | 37 ++++++ tools/perf/tests/make | 39 +++++- tools/perf/util/auxtrace.c | 7 +- tools/perf/util/auxtrace.h | 6 +- tools/perf/util/build-id.c | 6 +- tools/perf/util/kvm-stat.h | 8 +- tools/perf/util/util.c | 17 +++ tools/perf/util/util.h | 1 + 25 files changed, 688 insertions(+), 122 deletions(-) create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c ^ permalink raw reply [flat|nested] 56+ messages in thread
* [PATCH 01/16] tools build: Check basic headers for test-compile feature checker 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 02/16] perf build: Fix feature-dump checks, we need to test all features Arnaldo Carvalho de Melo ` (15 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, Wang Nan, Li Zefan, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> An i386 binary can be linked correctly even without correct headers. Which causes problem. For exmaple: $ mv /tmp/oxygen_root/usr/include/gnu/stubs-32.h{,.bak} $ make tools/perf Auto-detecting system features: ... dwarf: [ on ] [SNIP] GEN common-cmds.h CC perf-read-vdso32 In file included from /tmp/oxygen_root/usr/include/features.h:388:0, from /tmp/oxygen_root/usr/include/stdio.h:27, from perf-read-vdso.c:1: /tmp/oxygen_root/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory # include <gnu/stubs-32.h> ^ compilation terminated. ... In this patch we checks not only compiler and linker, but also basic headers in test-compile test case, make it fail on a platform lacking correct headers. Signed-off-by: Wang Nan <wangnan0@huawei.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Link: http://lkml.kernel.org/r/1453893742-20603-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/build/feature/test-compile.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/build/feature/test-compile.c b/tools/build/feature/test-compile.c index 31dbf45bf99c..c54e6551ae4c 100644 --- a/tools/build/feature/test-compile.c +++ b/tools/build/feature/test-compile.c @@ -1,4 +1,6 @@ +#include <stdio.h> int main(void) { + printf("Hello World!\n"); return 0; } -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 02/16] perf build: Fix feature-dump checks, we need to test all features 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 01/16] tools build: Check basic headers for test-compile feature checker Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 03/16] perf build: Remove all condition feature check {C,LD}FLAGS Arnaldo Carvalho de Melo ` (14 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Jiri Olsa, Jiri Olsa, Wang Nan, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Jiri Olsa <jolsa@redhat.com> I see problem with test-all case speedup, because it does not comprise checks for 32bits compilations, fix it. The problem could be noticed by calling: make -C tools/perf feature-dump That would end up misdetecting the feature-compile-x32, that, building using 'gcc -mx32' needs stub headers not present in a fedora 23 devel machine and thus fail to compile, but ended up appearing as detected, i.e. present in tools/perf/FEATURE-DUMP as 'feature-compile-x32=1'. With this fix it correctly appears as 'feature-compile-x32=0' and if we uninstall the libc devel files for 32 bits (glibc-devel.i686), then the relevant variable is flipped from 'feature-compile-32=1' to 'feature-compile-32=0'. The same things happened for bionic and libbabeltrace, that were misdetected because the are no tested in test-all.c Reported-and-Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-u0sjaddf1r9m8icpd98ry7fz@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/build/Makefile.feature | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature index 674c47d5f9d1..7bff2ea831cf 100644 --- a/tools/build/Makefile.feature +++ b/tools/build/Makefile.feature @@ -119,6 +119,14 @@ ifeq ($(feature-all), 1) # test-all.c passed - just set all the core feature flags to 1: # $(foreach feat,$(FEATURE_TESTS),$(call feature_set,$(feat))) + # + # test-all.c does not comprise these tests, so we need to + # for this case to get features proper values + # + $(call feature_check,compile-32) + $(call feature_check,compile-x32) + $(call feature_check,bionic) + $(call feature_check,libbabeltrace) else $(foreach feat,$(FEATURE_TESTS),$(call feature_check,$(feat))) endif -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 03/16] perf build: Remove all condition feature check {C,LD}FLAGS 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 01/16] tools build: Check basic headers for test-compile feature checker Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 02/16] perf build: Fix feature-dump checks, we need to test all features Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 04/16] perf build: Use feature dump file for build-test Arnaldo Carvalho de Melo ` (13 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Jiri Olsa, Li Zefan, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> 'make feature-dump' should give a stable result, so even 'NO_SOMETHING=1' is given (for babeltrace, if LIBBABELTRACE=1 is not given), we should try to detect those feature and {C,LD}FLAGS. Build or not should be controled independent. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Link: http://lkml.kernel.org/r/1454047050-204993-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/config/Makefile | 101 +++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 54 deletions(-) diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index 511141b102e8..0045a5ddd0ca 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -61,50 +61,45 @@ endif ifeq ($(LIBUNWIND_LIBS),) NO_LIBUNWIND := 1 -else - # - # For linking with debug library, run like: - # - # make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/ - # - ifdef LIBUNWIND_DIR - LIBUNWIND_CFLAGS = -I$(LIBUNWIND_DIR)/include - LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib - endif - LIBUNWIND_LDFLAGS += $(LIBUNWIND_LIBS) - - # Set per-feature check compilation flags - FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_CFLAGS) - FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS) - FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS) - FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS) endif +# +# For linking with debug library, run like: +# +# make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/ +# +ifdef LIBUNWIND_DIR + LIBUNWIND_CFLAGS = -I$(LIBUNWIND_DIR)/include + LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib +endif +LIBUNWIND_LDFLAGS += $(LIBUNWIND_LIBS) + +# Set per-feature check compilation flags +FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_CFLAGS) +FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS) +FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS) +FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS) ifeq ($(NO_PERF_REGS),0) CFLAGS += -DHAVE_PERF_REGS_SUPPORT endif -ifndef NO_LIBELF - # for linking with debug library, run like: - # make DEBUG=1 LIBDW_DIR=/opt/libdw/ - ifdef LIBDW_DIR - LIBDW_CFLAGS := -I$(LIBDW_DIR)/include - LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib - endif - FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(LIBDW_CFLAGS) - FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw +# for linking with debug library, run like: +# make DEBUG=1 LIBDW_DIR=/opt/libdw/ +ifdef LIBDW_DIR + LIBDW_CFLAGS := -I$(LIBDW_DIR)/include + LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib endif +FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(LIBDW_CFLAGS) +FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw -ifdef LIBBABELTRACE - # for linking with debug library, run like: - # make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/ - ifdef LIBBABELTRACE_DIR - LIBBABELTRACE_CFLAGS := -I$(LIBBABELTRACE_DIR)/include - LIBBABELTRACE_LDFLAGS := -L$(LIBBABELTRACE_DIR)/lib - endif - FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS) - FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf +# for linking with debug library, run like: +# make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/ +ifdef LIBBABELTRACE_DIR + LIBBABELTRACE_CFLAGS := -I$(LIBBABELTRACE_DIR)/include + LIBBABELTRACE_LDFLAGS := -L$(LIBBABELTRACE_DIR)/lib endif +FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS) +FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/arch/$(ARCH)/include/uapi -I$(srctree)/include/uapi # include ARCH specific config @@ -145,28 +140,26 @@ ifdef PARSER_DEBUG $(call detected_var,PARSER_DEBUG_FLEX) endif -ifndef NO_LIBPYTHON - # Try different combinations to accommodate systems that only have - # python[2][-config] in weird combinations but always preferring - # python2 and python2-config as per pep-0394. If we catch a - # python[-config] in version 3, the version check will kill it. - PYTHON2 := $(if $(call get-executable,python2),python2,python) - override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON2)) - PYTHON2_CONFIG := \ - $(if $(call get-executable,$(PYTHON)-config),$(PYTHON)-config,python-config) - override PYTHON_CONFIG := \ - $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON2_CONFIG)) +# Try different combinations to accommodate systems that only have +# python[2][-config] in weird combinations but always preferring +# python2 and python2-config as per pep-0394. If we catch a +# python[-config] in version 3, the version check will kill it. +PYTHON2 := $(if $(call get-executable,python2),python2,python) +override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON2)) +PYTHON2_CONFIG := \ + $(if $(call get-executable,$(PYTHON)-config),$(PYTHON)-config,python-config) +override PYTHON_CONFIG := \ + $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON2_CONFIG)) - PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG)) +PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG)) - PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null) - PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null) +PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null) +PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null) - FEATURE_CHECK_CFLAGS-libpython := $(PYTHON_EMBED_CCOPTS) - FEATURE_CHECK_LDFLAGS-libpython := $(PYTHON_EMBED_LDOPTS) - FEATURE_CHECK_CFLAGS-libpython-version := $(PYTHON_EMBED_CCOPTS) - FEATURE_CHECK_LDFLAGS-libpython-version := $(PYTHON_EMBED_LDOPTS) -endif +FEATURE_CHECK_CFLAGS-libpython := $(PYTHON_EMBED_CCOPTS) +FEATURE_CHECK_LDFLAGS-libpython := $(PYTHON_EMBED_LDOPTS) +FEATURE_CHECK_CFLAGS-libpython-version := $(PYTHON_EMBED_CCOPTS) +FEATURE_CHECK_LDFLAGS-libpython-version := $(PYTHON_EMBED_LDOPTS) CFLAGS += -fno-omit-frame-pointer CFLAGS += -ggdb3 -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 04/16] perf build: Use feature dump file for build-test 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (2 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 03/16] perf build: Remove all condition feature check {C,LD}FLAGS Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 05/16] perf tools: Speed up build-tests by reducing the number of builds tested Arnaldo Carvalho de Melo ` (12 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Jiri Olsa, Namhyung Kim, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> To prevent the feature check tests to run repeately, one time per 'tests/make' target/test, this patch utilizes the previously introduced 'feature-dump' make target and FEATURES_DUMP variable, making sure that the feature checkers run only once when doing build-test for normal test cases. However, since standard users doesn't reuse features dump result, we'd better give an option to check their behaviors. The above feature should be used to make build-test faster only. Only utilize it for build-test. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/1454068269-235999-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Makefile | 2 +- tools/perf/tests/make | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index dcd9a70c7193..e4ff0bd08870 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -78,7 +78,7 @@ clean: # The build-test target is not really parallel, don't print the jobs info: # build-test: - @$(MAKE) SHUF=1 -f tests/make --no-print-directory + @$(MAKE) SHUF=1 -f tests/make REUSE_FEATURES_DUMP=1 --no-print-directory # # All other targets get passed through: diff --git a/tools/perf/tests/make b/tools/perf/tests/make index f918015512af..7f663f4611c6 100644 --- a/tools/perf/tests/make +++ b/tools/perf/tests/make @@ -15,6 +15,7 @@ else PERF := . PERF_O := $(PERF) O_OPT := +FULL_O := $(shell readlink -f $(PERF_O) || echo $(PERF_O)) ifneq ($(O),) FULL_O := $(shell readlink -f $(O) || echo $(O)) @@ -313,11 +314,43 @@ make_kernelsrc_tools: (make -C ../../tools $(PARALLEL_OPT) $(K_O_OPT) perf) > $@ 2>&1 && \ test -x $(KERNEL_O)/tools/perf/perf && rm -f $@ || (cat $@ ; false) +FEATURES_DUMP_FILE := $(FULL_O)/BUILD_TEST_FEATURE_DUMP +FEATURES_DUMP_FILE_STATIC := $(FULL_O)/BUILD_TEST_FEATURE_DUMP_STATIC + all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools @echo OK + @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) out: $(run_O) @echo OK + @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) + +ifeq ($(REUSE_FEATURES_DUMP),1) +$(FEATURES_DUMP_FILE): + $(call clean) + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) feature-dump"; \ + echo "- $@: $$cmd" && echo $$cmd && \ + ( eval $$cmd ) > /dev/null 2>&1 + +$(FEATURES_DUMP_FILE_STATIC): + $(call clean) + @cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \ + echo "- $@: $$cmd" && echo $$cmd && \ + ( eval $$cmd ) > /dev/null 2>&1 + +# Add feature dump dependency for run/run_O targets +$(foreach t,$(run) $(run_O),$(eval \ + $(t): $(if $(findstring make_static,$(t)),\ + $(FEATURES_DUMP_FILE_STATIC),\ + $(FEATURES_DUMP_FILE)))) + +# Append 'FEATURES_DUMP=' option to all test cases. For example: +# make_no_libbpf: NO_LIBBPF=1 --> NO_LIBBPF=1 FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP +# make_static: LDFLAGS=-static --> LDFLAGS=-static FEATURES_DUMP=/a/b/BUILD_TEST_FEATURE_DUMP_STATIC +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\ + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\ + $(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE)))) +endif .PHONY: all $(run) $(run_O) tarpkg clean make_kernelsrc make_kernelsrc_tools endif # ifndef MK -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 05/16] perf tools: Speed up build-tests by reducing the number of builds tested 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (3 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 04/16] perf build: Use feature dump file for build-test Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 06/16] perf auxtrace: Add perf_evlist pointer to *info_priv_size() Arnaldo Carvalho de Melo ` (11 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan From: Arnaldo Carvalho de Melo <acme@redhat.com> The 'tools/perf/test/make' makefile has in its default, 'all' target builds that will pollute the source code directory, i.e. that will not use O= variable. The 'build-test' should be run as often as possible, preferrably after each non strictly non-code commit, so speed it up by selecting just the O= targets. Furthermore it tests both the Makefile.perf file, that is normally driven by the main Makefile, and the Makefile, reduce the time in half by having just MK=Makefile, the most usual, tested by 'build-test'. Please run: make -C tools/perf -f tests/make from time to time for testing also the in-place build tests. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-jrt9utscsiqkmjy3ccufostd@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Makefile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index e4ff0bd08870..4b68f465195c 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -75,10 +75,17 @@ clean: $(make) # -# The build-test target is not really parallel, don't print the jobs info: +# The build-test target is not really parallel, don't print the jobs info, +# it also uses only the tests/make targets that don't pollute the source +# repository, i.e. that uses O= or builds the tarpkg outside the source +# repo directories. +# +# For a full test, use: +# +# make -C tools/perf -f tests/make # build-test: - @$(MAKE) SHUF=1 -f tests/make REUSE_FEATURES_DUMP=1 --no-print-directory + @$(MAKE) SHUF=1 -f tests/make REUSE_FEATURES_DUMP=1 MK=Makefile --no-print-directory tarpkg out # # All other targets get passed through: -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 06/16] perf auxtrace: Add perf_evlist pointer to *info_priv_size() 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (4 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 05/16] perf tools: Speed up build-tests by reducing the number of builds tested Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 07/16] perf buildid: Fix cpumode of buildid event Arnaldo Carvalho de Melo ` (10 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Mathieu Poirier, Al Grant, Chunyan Zhang, linux-arm-kernel, linux-doc, Mike Leach, Peter Zijlstra, Rabin Vincent, Tor Jeremiassen, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Mathieu Poirier <mathieu.poirier@linaro.org> On some architecture the size of the private header may be dependent on the number of tracers used in the session. As such adding a "struct perf_evlist *" parameter, which should contain all the required information. Also adjusting the existing client of the interface to take the new parameter into account. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Al Grant <al.grant@arm.com> Cc: Chunyan Zhang <zhang.chunyan@linaro.org> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: Mike Leach <mike.leach@arm.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Rabin Vincent <rabin@rab.in> Cc: Tor Jeremiassen <tor@ti.com> Link: http://lkml.kernel.org/r/1452807977-8069-22-git-send-email-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/arch/x86/util/intel-bts.c | 4 +++- tools/perf/arch/x86/util/intel-pt.c | 4 +++- tools/perf/util/auxtrace.c | 7 ++++--- tools/perf/util/auxtrace.h | 6 ++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/perf/arch/x86/util/intel-bts.c b/tools/perf/arch/x86/util/intel-bts.c index 8d8150f1cf9b..d66f9ad4df2e 100644 --- a/tools/perf/arch/x86/util/intel-bts.c +++ b/tools/perf/arch/x86/util/intel-bts.c @@ -60,7 +60,9 @@ struct branch { u64 misc; }; -static size_t intel_bts_info_priv_size(struct auxtrace_record *itr __maybe_unused) +static size_t +intel_bts_info_priv_size(struct auxtrace_record *itr __maybe_unused, + struct perf_evlist *evlist __maybe_unused) { return INTEL_BTS_AUXTRACE_PRIV_SIZE; } diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c index f05daacc9e78..6f7d453b0e32 100644 --- a/tools/perf/arch/x86/util/intel-pt.c +++ b/tools/perf/arch/x86/util/intel-pt.c @@ -273,7 +273,9 @@ intel_pt_pmu_default_config(struct perf_pmu *intel_pt_pmu) return attr; } -static size_t intel_pt_info_priv_size(struct auxtrace_record *itr __maybe_unused) +static size_t +intel_pt_info_priv_size(struct auxtrace_record *itr __maybe_unused, + struct perf_evlist *evlist __maybe_unused) { return INTEL_PT_AUXTRACE_PRIV_SIZE; } diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c index 360fda01f3b0..ec164fe70718 100644 --- a/tools/perf/util/auxtrace.c +++ b/tools/perf/util/auxtrace.c @@ -478,10 +478,11 @@ void auxtrace_heap__pop(struct auxtrace_heap *heap) heap_array[last].ordinal); } -size_t auxtrace_record__info_priv_size(struct auxtrace_record *itr) +size_t auxtrace_record__info_priv_size(struct auxtrace_record *itr, + struct perf_evlist *evlist) { if (itr) - return itr->info_priv_size(itr); + return itr->info_priv_size(itr, evlist); return 0; } @@ -852,7 +853,7 @@ int perf_event__synthesize_auxtrace_info(struct auxtrace_record *itr, int err; pr_debug2("Synthesizing auxtrace information\n"); - priv_size = auxtrace_record__info_priv_size(itr); + priv_size = auxtrace_record__info_priv_size(itr, session->evlist); ev = zalloc(sizeof(struct auxtrace_info_event) + priv_size); if (!ev) return -ENOMEM; diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h index b86f90db1352..e5a8e2d4f2af 100644 --- a/tools/perf/util/auxtrace.h +++ b/tools/perf/util/auxtrace.h @@ -293,7 +293,8 @@ struct auxtrace_record { int (*recording_options)(struct auxtrace_record *itr, struct perf_evlist *evlist, struct record_opts *opts); - size_t (*info_priv_size)(struct auxtrace_record *itr); + size_t (*info_priv_size)(struct auxtrace_record *itr, + struct perf_evlist *evlist); int (*info_fill)(struct auxtrace_record *itr, struct perf_session *session, struct auxtrace_info_event *auxtrace_info, @@ -429,7 +430,8 @@ int auxtrace_parse_snapshot_options(struct auxtrace_record *itr, int auxtrace_record__options(struct auxtrace_record *itr, struct perf_evlist *evlist, struct record_opts *opts); -size_t auxtrace_record__info_priv_size(struct auxtrace_record *itr); +size_t auxtrace_record__info_priv_size(struct auxtrace_record *itr, + struct perf_evlist *evlist); int auxtrace_record__info_fill(struct auxtrace_record *itr, struct perf_session *session, struct auxtrace_info_event *auxtrace_info, -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 07/16] perf buildid: Fix cpumode of buildid event 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (5 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 06/16] perf auxtrace: Add perf_evlist pointer to *info_priv_size() Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 08/16] perf test: Check environment before start real BPF test Arnaldo Carvalho de Melo ` (9 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Jiri Olsa, Li Zefan, Masami Hiramatsu, Namhyung Kim, pi3orama, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> There is a nasty confusion that, for kernel module, dso->kernel is not necessary to be DSO_TYPE_KERNEL or DSO_TYPE_GUEST_KERNEL. These two enums are for vmlinux. See thread [1]. We tried to fix this part but it is costy. Code machine__write_buildid_table() is another unfortunate function fall into this trap that, when issuing buildid event for a kernel module, cpumode it gives to the event is PERF_RECORD_MISC_USER, not PERF_RECORD_MISC_KERNEL. However, even with this bug, most of the time it doesn't causes real problem. I find this issue when trying to use a perf before commit 3d39ac538629 ("perf machine: No need to have two DSOs lists") to parse a perf.data generated by newest perf. [1] https://lkml.org/lkml/2015/9/21/908 Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1454089251-203152-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/build-id.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index 6a7e273a514a..b28100ee1732 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -211,6 +211,7 @@ static int machine__write_buildid_table(struct machine *machine, int fd) dsos__for_each_with_build_id(pos, &machine->dsos.head) { const char *name; size_t name_len; + bool in_kernel = false; if (!pos->hit) continue; @@ -227,8 +228,11 @@ static int machine__write_buildid_table(struct machine *machine, int fd) name_len = pos->long_name_len + 1; } + in_kernel = pos->kernel || + is_kernel_module(name, + PERF_RECORD_MISC_CPUMODE_UNKNOWN); err = write_buildid(name, name_len, pos->build_id, machine->pid, - pos->kernel ? kmisc : umisc, fd); + in_kernel ? kmisc : umisc, fd); if (err) break; } -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 08/16] perf test: Check environment before start real BPF test 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (6 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 07/16] perf buildid: Fix cpumode of buildid event Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 09/16] perf test: Improve bp_signal Arnaldo Carvalho de Melo ` (8 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann, He Kuang, Jiri Olsa, Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Will Deacon, pi3orama, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> Copying perf to old kernel system results: # perf test bpf 37: Test BPF filter : 37.1: Test basic BPF filtering : FAILED! 37.2: Test BPF prologue generation : Skip However, in case when kernel doesn't support a test case it should return 'Skip', 'FAILED!' should be reserved for kernel tests for when the kernel supports a feature that then fails to work as advertised. This patch checks environment before real testcase. Signed-off-by: Wang Nan <wangnan0@huawei.com> Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1453715801-7732-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/tests/bpf.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c index 952ca99aba6b..4aed5cb4ac2d 100644 --- a/tools/perf/tests/bpf.c +++ b/tools/perf/tests/bpf.c @@ -1,7 +1,11 @@ #include <stdio.h> #include <sys/epoll.h> +#include <util/util.h> #include <util/bpf-loader.h> #include <util/evlist.h> +#include <linux/bpf.h> +#include <linux/filter.h> +#include <bpf/bpf.h> #include "tests.h" #include "llvm.h" #include "debug.h" @@ -243,6 +247,36 @@ const char *test__bpf_subtest_get_desc(int i) return bpf_testcase_table[i].desc; } +static int check_env(void) +{ + int err; + unsigned int kver_int; + char license[] = "GPL"; + + struct bpf_insn insns[] = { + BPF_MOV64_IMM(BPF_REG_0, 1), + BPF_EXIT_INSN(), + }; + + err = fetch_kernel_version(&kver_int, NULL, 0); + if (err) { + pr_debug("Unable to get kernel version\n"); + return err; + } + + err = bpf_load_program(BPF_PROG_TYPE_KPROBE, insns, + sizeof(insns) / sizeof(insns[0]), + license, kver_int, NULL, 0); + if (err < 0) { + pr_err("Missing basic BPF support, skip this test: %s\n", + strerror(errno)); + return err; + } + close(err); + + return 0; +} + int test__bpf(int i) { int err; @@ -255,6 +289,9 @@ int test__bpf(int i) return TEST_SKIP; } + if (check_env()) + return TEST_SKIP; + err = __test__bpf(i); return err; } -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 09/16] perf test: Improve bp_signal 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (7 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 08/16] perf test: Check environment before start real BPF test Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 10/16] perf tools: Move timestamp creation to util Arnaldo Carvalho de Melo ` (7 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann, He Kuang, Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Will Deacon, pi3orama, Jiri Olsa, Arnaldo Carvalho de Melo From: Wang Nan <wangnan0@huawei.com> Will Deacon [1] has some question on patch [2]. This patch improves test__bp_signal so we can test: 1. A watchpoint and a breakpoint that fire on the same instruction 2. Nested signals Test result: On x86_64 and ARM64 (result are similar with patch [2] on ARM64): # ./perf test -v signal 17: Test breakpoint overflow signal handler : --- start --- test child forked, pid 10213 count1 1, count2 3, count3 2, overflow 3, overflows_2 3 test child finished with 0 ---- end ---- Test breakpoint overflow signal handler: Ok So at least 2 cases Will doubted are handled correctly. [1] http://lkml.kernel.org/g/20160104165535.GI1616@arm.com [2] http://lkml.kernel.org/g/1450921362-198371-1-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: He Kuang <hekuang@huawei.com> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1453715801-7732-9-git-send-email-wangnan0@huawei.com Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/tests/bp_signal.c | 140 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 118 insertions(+), 22 deletions(-) diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c index fb80c9eb6a95..1d1bb489b4e8 100644 --- a/tools/perf/tests/bp_signal.c +++ b/tools/perf/tests/bp_signal.c @@ -29,14 +29,59 @@ static int fd1; static int fd2; +static int fd3; static int overflows; +static int overflows_2; + +volatile long the_var; + + +/* + * Use ASM to ensure watchpoint and breakpoint can be triggered + * at one instruction. + */ +#if defined (__x86_64__) +extern void __test_function(volatile long *ptr); +asm ( + ".globl __test_function\n" + "__test_function:\n" + "incq (%rdi)\n" + "ret\n"); +#elif defined (__aarch64__) +extern void __test_function(volatile long *ptr); +asm ( + ".globl __test_function\n" + "__test_function:\n" + "str x30, [x0]\n" + "ret\n"); + +#else +static void __test_function(volatile long *ptr) +{ + *ptr = 0x1234; +} +#endif __attribute__ ((noinline)) static int test_function(void) { + __test_function(&the_var); + the_var++; return time(NULL); } +static void sig_handler_2(int signum __maybe_unused, + siginfo_t *oh __maybe_unused, + void *uc __maybe_unused) +{ + overflows_2++; + if (overflows_2 > 10) { + ioctl(fd1, PERF_EVENT_IOC_DISABLE, 0); + ioctl(fd2, PERF_EVENT_IOC_DISABLE, 0); + ioctl(fd3, PERF_EVENT_IOC_DISABLE, 0); + } +} + static void sig_handler(int signum __maybe_unused, siginfo_t *oh __maybe_unused, void *uc __maybe_unused) @@ -54,10 +99,11 @@ static void sig_handler(int signum __maybe_unused, */ ioctl(fd1, PERF_EVENT_IOC_DISABLE, 0); ioctl(fd2, PERF_EVENT_IOC_DISABLE, 0); + ioctl(fd3, PERF_EVENT_IOC_DISABLE, 0); } } -static int bp_event(void *fn, int setup_signal) +static int __event(bool is_x, void *addr, int signal) { struct perf_event_attr pe; int fd; @@ -67,8 +113,8 @@ static int bp_event(void *fn, int setup_signal) pe.size = sizeof(struct perf_event_attr); pe.config = 0; - pe.bp_type = HW_BREAKPOINT_X; - pe.bp_addr = (unsigned long) fn; + pe.bp_type = is_x ? HW_BREAKPOINT_X : HW_BREAKPOINT_W; + pe.bp_addr = (unsigned long) addr; pe.bp_len = sizeof(long); pe.sample_period = 1; @@ -86,17 +132,25 @@ static int bp_event(void *fn, int setup_signal) return TEST_FAIL; } - if (setup_signal) { - fcntl(fd, F_SETFL, O_RDWR|O_NONBLOCK|O_ASYNC); - fcntl(fd, F_SETSIG, SIGIO); - fcntl(fd, F_SETOWN, getpid()); - } + fcntl(fd, F_SETFL, O_RDWR|O_NONBLOCK|O_ASYNC); + fcntl(fd, F_SETSIG, signal); + fcntl(fd, F_SETOWN, getpid()); ioctl(fd, PERF_EVENT_IOC_RESET, 0); return fd; } +static int bp_event(void *addr, int signal) +{ + return __event(true, addr, signal); +} + +static int wp_event(void *addr, int signal) +{ + return __event(false, addr, signal); +} + static long long bp_count(int fd) { long long count; @@ -114,7 +168,7 @@ static long long bp_count(int fd) int test__bp_signal(int subtest __maybe_unused) { struct sigaction sa; - long long count1, count2; + long long count1, count2, count3; /* setup SIGIO signal handler */ memset(&sa, 0, sizeof(struct sigaction)); @@ -126,21 +180,52 @@ int test__bp_signal(int subtest __maybe_unused) return TEST_FAIL; } + sa.sa_sigaction = (void *) sig_handler_2; + if (sigaction(SIGUSR1, &sa, NULL) < 0) { + pr_debug("failed setting up signal handler 2\n"); + return TEST_FAIL; + } + /* * We create following events: * - * fd1 - breakpoint event on test_function with SIGIO + * fd1 - breakpoint event on __test_function with SIGIO * signal configured. We should get signal * notification each time the breakpoint is hit * - * fd2 - breakpoint event on sig_handler without SIGIO + * fd2 - breakpoint event on sig_handler with SIGUSR1 + * configured. We should get SIGUSR1 each time when + * breakpoint is hit + * + * fd3 - watchpoint event on __test_function with SIGIO * configured. * * Following processing should happen: - * - execute test_function - * - fd1 event breakpoint hit -> count1 == 1 - * - SIGIO is delivered -> overflows == 1 - * - fd2 event breakpoint hit -> count2 == 1 + * Exec: Action: Result: + * incq (%rdi) - fd1 event breakpoint hit -> count1 == 1 + * - SIGIO is delivered + * sig_handler - fd2 event breakpoint hit -> count2 == 1 + * - SIGUSR1 is delivered + * sig_handler_2 -> overflows_2 == 1 (nested signal) + * sys_rt_sigreturn - return from sig_handler_2 + * overflows++ -> overflows = 1 + * sys_rt_sigreturn - return from sig_handler + * incq (%rdi) - fd3 event watchpoint hit -> count3 == 1 (wp and bp in one insn) + * - SIGIO is delivered + * sig_handler - fd2 event breakpoint hit -> count2 == 2 + * - SIGUSR1 is delivered + * sig_handler_2 -> overflows_2 == 2 (nested signal) + * sys_rt_sigreturn - return from sig_handler_2 + * overflows++ -> overflows = 2 + * sys_rt_sigreturn - return from sig_handler + * the_var++ - fd3 event watchpoint hit -> count3 == 2 (standalone watchpoint) + * - SIGIO is delivered + * sig_handler - fd2 event breakpoint hit -> count2 == 3 + * - SIGUSR1 is delivered + * sig_handler_2 -> overflows_2 == 3 (nested signal) + * sys_rt_sigreturn - return from sig_handler_2 + * overflows++ -> overflows == 3 + * sys_rt_sigreturn - return from sig_handler * * The test case check following error conditions: * - we get stuck in signal handler because of debug @@ -152,11 +237,13 @@ int test__bp_signal(int subtest __maybe_unused) * */ - fd1 = bp_event(test_function, 1); - fd2 = bp_event(sig_handler, 0); + fd1 = bp_event(__test_function, SIGIO); + fd2 = bp_event(sig_handler, SIGUSR1); + fd3 = wp_event((void *)&the_var, SIGIO); ioctl(fd1, PERF_EVENT_IOC_ENABLE, 0); ioctl(fd2, PERF_EVENT_IOC_ENABLE, 0); + ioctl(fd3, PERF_EVENT_IOC_ENABLE, 0); /* * Kick off the test by trigering 'fd1' @@ -166,15 +253,18 @@ int test__bp_signal(int subtest __maybe_unused) ioctl(fd1, PERF_EVENT_IOC_DISABLE, 0); ioctl(fd2, PERF_EVENT_IOC_DISABLE, 0); + ioctl(fd3, PERF_EVENT_IOC_DISABLE, 0); count1 = bp_count(fd1); count2 = bp_count(fd2); + count3 = bp_count(fd3); close(fd1); close(fd2); + close(fd3); - pr_debug("count1 %lld, count2 %lld, overflow %d\n", - count1, count2, overflows); + pr_debug("count1 %lld, count2 %lld, count3 %lld, overflow %d, overflows_2 %d\n", + count1, count2, count3, overflows, overflows_2); if (count1 != 1) { if (count1 == 11) @@ -183,12 +273,18 @@ int test__bp_signal(int subtest __maybe_unused) pr_debug("failed: wrong count for bp1%lld\n", count1); } - if (overflows != 1) + if (overflows != 3) pr_debug("failed: wrong overflow hit\n"); - if (count2 != 1) + if (overflows_2 != 3) + pr_debug("failed: wrong overflow_2 hit\n"); + + if (count2 != 3) pr_debug("failed: wrong count for bp2\n"); - return count1 == 1 && overflows == 1 && count2 == 1 ? + if (count3 != 2) + pr_debug("failed: wrong count for bp3\n"); + + return count1 == 1 && overflows == 3 && count2 == 3 && overflows_2 == 3 && count3 == 2 ? TEST_OK : TEST_FAIL; } -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 10/16] perf tools: Move timestamp creation to util 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (8 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 09/16] perf test: Improve bp_signal Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 11/16] perf record: Use OPT_BOOLEAN_SET for buildid cache related options Arnaldo Carvalho de Melo ` (6 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann, He Kuang, Jiri Olsa, Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Will Deacon, pi3orama, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Wang Nan <wangnan0@huawei.com> Timestamp generation becomes a public available helper. Which will be used by 'perf record', help it output to split output file based on time. For example: perf.data.2015122620363710 perf.data.2015122620364092 perf.data.2015122620365423 ... Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1453715801-7732-27-git-send-email-wangnan0@huawei.com Signed-off-by: He Kuang <hekuang@huawei.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-buildid-cache.c | 14 +------------- tools/perf/util/util.c | 17 +++++++++++++++++ tools/perf/util/util.h | 1 + 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/tools/perf/builtin-buildid-cache.c b/tools/perf/builtin-buildid-cache.c index d93bff7fc0e4..632efc6b79a0 100644 --- a/tools/perf/builtin-buildid-cache.c +++ b/tools/perf/builtin-buildid-cache.c @@ -38,19 +38,7 @@ static int build_id_cache__kcore_buildid(const char *proc_dir, char *sbuildid) static int build_id_cache__kcore_dir(char *dir, size_t sz) { - struct timeval tv; - struct tm tm; - char dt[32]; - - if (gettimeofday(&tv, NULL) || !localtime_r(&tv.tv_sec, &tm)) - return -1; - - if (!strftime(dt, sizeof(dt), "%Y%m%d%H%M%S", &tm)) - return -1; - - scnprintf(dir, sz, "%s%02u", dt, (unsigned)tv.tv_usec / 10000); - - return 0; + return fetch_current_timestamp(dir, sz); } static bool same_kallsyms_reloc(const char *from_dir, char *to_dir) diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c index 7a2da7ef556e..b9e2843cfbe7 100644 --- a/tools/perf/util/util.c +++ b/tools/perf/util/util.c @@ -701,3 +701,20 @@ bool is_regular_file(const char *file) return S_ISREG(st.st_mode); } + +int fetch_current_timestamp(char *buf, size_t sz) +{ + struct timeval tv; + struct tm tm; + char dt[32]; + + if (gettimeofday(&tv, NULL) || !localtime_r(&tv.tv_sec, &tm)) + return -1; + + if (!strftime(dt, sizeof(dt), "%Y%m%d%H%M%S", &tm)) + return -1; + + scnprintf(buf, sz, "%s%02u", dt, (unsigned)tv.tv_usec / 10000); + + return 0; +} diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h index 61650f05e5c1..a8615816a00d 100644 --- a/tools/perf/util/util.h +++ b/tools/perf/util/util.h @@ -344,5 +344,6 @@ int fetch_kernel_version(unsigned int *puint, const char *perf_tip(const char *dirpath); bool is_regular_file(const char *file); +int fetch_current_timestamp(char *buf, size_t sz); #endif /* GIT_COMPAT_UTIL_H */ -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 11/16] perf record: Use OPT_BOOLEAN_SET for buildid cache related options 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (9 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 10/16] perf tools: Move timestamp creation to util Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 12/16] perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h Arnaldo Carvalho de Melo ` (5 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Wang Nan, Alexei Starovoitov, Brendan Gregg, Daniel Borkmann, He Kuang, Jiri Olsa, Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Will Deacon, pi3orama, Arnaldo Carvalho de Melo From: Wang Nan <wangnan0@huawei.com> 'perf record' knows whether buildid cache is enabled (via --no-no-buildid-cache) deliberately. Buildid cache can be turned off in some situations. Output switching support needs this feature to turn off buildid cache by default. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1453715801-7732-33-git-send-email-wangnan0@huawei.com Signed-off-by: He Kuang <hekuang@huawei.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-record.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 319712a4e02b..0ee0d5cd31a7 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -49,7 +49,9 @@ struct record { const char *progname; int realtime_prio; bool no_buildid; + bool no_buildid_set; bool no_buildid_cache; + bool no_buildid_cache_set; bool buildid_all; unsigned long long samples; }; @@ -1097,10 +1099,12 @@ struct option __record_options[] = { OPT_BOOLEAN('P', "period", &record.opts.period, "Record the sample period"), OPT_BOOLEAN('n', "no-samples", &record.opts.no_samples, "don't sample"), - OPT_BOOLEAN('N', "no-buildid-cache", &record.no_buildid_cache, - "do not update the buildid cache"), - OPT_BOOLEAN('B', "no-buildid", &record.no_buildid, - "do not collect buildids in perf.data"), + OPT_BOOLEAN_SET('N', "no-buildid-cache", &record.no_buildid_cache, + &record.no_buildid_cache_set, + "do not update the buildid cache"), + OPT_BOOLEAN_SET('B', "no-buildid", &record.no_buildid, + &record.no_buildid_set, + "do not collect buildids in perf.data"), OPT_CALLBACK('G', "cgroup", &record.evlist, "name", "monitor event in cgroup name only", parse_cgroups), -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 12/16] perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (10 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 11/16] perf record: Use OPT_BOOLEAN_SET for buildid cache related options Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 13/16] perf kvm/{x86,s390}: Remove const from kvm_events_tp Arnaldo Carvalho de Melo ` (4 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Hemant Kumar, Michael Ellerman, Naveen N. Rao, Paul Mackerras, Scott Wood, Srikar Dronamraju, linuxppc-dev, Arnaldo Carvalho de Melo From: Hemant Kumar <hemant@linux.vnet.ibm.com> Its better to remove the dependency on uapi/kvm_perf.h to allow dynamic discovery of kvm events (if its needed). To do this, some extern variables have been introduced with which we can keep the generic functions generic. Signed-off-by: Hemant Kumar <hemant@linux.vnet.ibm.com> Acked-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com> Acked-by: David Ahern <dsahern@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Scott Wood <scottwood@freescale.com> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1453962787-15376-1-git-send-email-hemant@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/arch/s390/util/kvm-stat.c | 8 +++++++- tools/perf/arch/x86/util/kvm-stat.c | 14 +++++++++++--- tools/perf/builtin-kvm.c | 20 ++++++++++---------- tools/perf/util/kvm-stat.h | 5 +++++ 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/tools/perf/arch/s390/util/kvm-stat.c b/tools/perf/arch/s390/util/kvm-stat.c index a5dbc07ec9dc..b85a94b19c25 100644 --- a/tools/perf/arch/s390/util/kvm-stat.c +++ b/tools/perf/arch/s390/util/kvm-stat.c @@ -10,7 +10,7 @@ */ #include "../../util/kvm-stat.h" -#include <asm/kvm_perf.h> +#include <asm/sie.h> define_exit_reasons_table(sie_exit_reasons, sie_intercept_code); define_exit_reasons_table(sie_icpt_insn_codes, icpt_insn_codes); @@ -18,6 +18,12 @@ define_exit_reasons_table(sie_sigp_order_codes, sigp_order_codes); define_exit_reasons_table(sie_diagnose_codes, diagnose_codes); define_exit_reasons_table(sie_icpt_prog_codes, icpt_prog_codes); +const char *vcpu_id_str = "id"; +const int decode_str_len = 40; +const char *kvm_exit_reason = "icptcode"; +const char *kvm_entry_trace = "kvm:kvm_s390_sie_enter"; +const char *kvm_exit_trace = "kvm:kvm_s390_sie_exit"; + static void event_icpt_insn_get_key(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key) diff --git a/tools/perf/arch/x86/util/kvm-stat.c b/tools/perf/arch/x86/util/kvm-stat.c index 14e4e668fad7..babefda4c862 100644 --- a/tools/perf/arch/x86/util/kvm-stat.c +++ b/tools/perf/arch/x86/util/kvm-stat.c @@ -1,5 +1,7 @@ #include "../../util/kvm-stat.h" -#include <asm/kvm_perf.h> +#include <asm/svm.h> +#include <asm/vmx.h> +#include <asm/kvm.h> define_exit_reasons_table(vmx_exit_reasons, VMX_EXIT_REASONS); define_exit_reasons_table(svm_exit_reasons, SVM_EXIT_REASONS); @@ -11,6 +13,12 @@ static struct kvm_events_ops exit_events = { .name = "VM-EXIT" }; +const char *vcpu_id_str = "vcpu_id"; +const int decode_str_len = 20; +const char *kvm_exit_reason = "exit_reason"; +const char *kvm_entry_trace = "kvm:kvm_entry"; +const char *kvm_exit_trace = "kvm:kvm_exit"; + /* * For the mmio events, we treat: * the time of MMIO write: kvm_mmio(KVM_TRACE_MMIO_WRITE...) -> kvm_entry @@ -65,7 +73,7 @@ static void mmio_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, struct event_key *key, char *decode) { - scnprintf(decode, DECODE_STR_LEN, "%#lx:%s", + scnprintf(decode, decode_str_len, "%#lx:%s", (unsigned long)key->key, key->info == KVM_TRACE_MMIO_WRITE ? "W" : "R"); } @@ -109,7 +117,7 @@ static void ioport_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, struct event_key *key, char *decode) { - scnprintf(decode, DECODE_STR_LEN, "%#llx:%s", + scnprintf(decode, decode_str_len, "%#llx:%s", (unsigned long long)key->key, key->info ? "POUT" : "PIN"); } diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 4418d9214872..ab5645cf39d2 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -30,7 +30,6 @@ #include <math.h> #ifdef HAVE_KVM_STAT_SUPPORT -#include <asm/kvm_perf.h> #include "util/kvm-stat.h" void exit_event_get_key(struct perf_evsel *evsel, @@ -38,12 +37,12 @@ void exit_event_get_key(struct perf_evsel *evsel, struct event_key *key) { key->info = 0; - key->key = perf_evsel__intval(evsel, sample, KVM_EXIT_REASON); + key->key = perf_evsel__intval(evsel, sample, kvm_exit_reason); } bool kvm_exit_event(struct perf_evsel *evsel) { - return !strcmp(evsel->name, KVM_EXIT_TRACE); + return !strcmp(evsel->name, kvm_exit_trace); } bool exit_event_begin(struct perf_evsel *evsel, @@ -59,7 +58,7 @@ bool exit_event_begin(struct perf_evsel *evsel, bool kvm_entry_event(struct perf_evsel *evsel) { - return !strcmp(evsel->name, KVM_ENTRY_TRACE); + return !strcmp(evsel->name, kvm_entry_trace); } bool exit_event_end(struct perf_evsel *evsel, @@ -91,7 +90,7 @@ void exit_event_decode_key(struct perf_kvm_stat *kvm, const char *exit_reason = get_exit_reason(kvm, key->exit_reasons, key->key); - scnprintf(decode, DECODE_STR_LEN, "%s", exit_reason); + scnprintf(decode, decode_str_len, "%s", exit_reason); } static bool register_kvm_events_ops(struct perf_kvm_stat *kvm) @@ -357,7 +356,7 @@ static bool handle_end_event(struct perf_kvm_stat *kvm, time_diff = sample->time - time_begin; if (kvm->duration && time_diff > kvm->duration) { - char decode[DECODE_STR_LEN]; + char decode[decode_str_len]; kvm->events_ops->decode_key(kvm, &event->key, decode); if (!skip_event(decode)) { @@ -385,7 +384,8 @@ struct vcpu_event_record *per_vcpu_record(struct thread *thread, return NULL; } - vcpu_record->vcpu_id = perf_evsel__intval(evsel, sample, VCPU_ID); + vcpu_record->vcpu_id = perf_evsel__intval(evsel, sample, + vcpu_id_str); thread__set_priv(thread, vcpu_record); } @@ -574,7 +574,7 @@ static void show_timeofday(void) static void print_result(struct perf_kvm_stat *kvm) { - char decode[DECODE_STR_LEN]; + char decode[decode_str_len]; struct kvm_event *event; int vcpu = kvm->trace_vcpu; @@ -585,7 +585,7 @@ static void print_result(struct perf_kvm_stat *kvm) pr_info("\n\n"); print_vcpu_info(kvm); - pr_info("%*s ", DECODE_STR_LEN, kvm->events_ops->name); + pr_info("%*s ", decode_str_len, kvm->events_ops->name); pr_info("%10s ", "Samples"); pr_info("%9s ", "Samples%"); @@ -604,7 +604,7 @@ static void print_result(struct perf_kvm_stat *kvm) min = get_event_min(event, vcpu); kvm->events_ops->decode_key(kvm, &event->key, decode); - pr_info("%*s ", DECODE_STR_LEN, decode); + pr_info("%*s ", decode_str_len, decode); pr_info("%10llu ", (unsigned long long)ecount); pr_info("%8.2f%% ", (double)ecount / kvm->total_count * 100); pr_info("%8.2f%% ", (double)etime / kvm->total_time * 100); diff --git a/tools/perf/util/kvm-stat.h b/tools/perf/util/kvm-stat.h index ae825d4ec110..dd55548ef66a 100644 --- a/tools/perf/util/kvm-stat.h +++ b/tools/perf/util/kvm-stat.h @@ -136,5 +136,10 @@ int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid); extern const char * const kvm_events_tp[]; extern struct kvm_reg_events_ops kvm_reg_events_ops[]; extern const char * const kvm_skip_events[]; +extern const char *vcpu_id_str; +extern const int decode_str_len; +extern const char *kvm_exit_reason; +extern const char *kvm_entry_trace; +extern const char *kvm_exit_trace; #endif /* __PERF_KVM_STAT_H */ -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 13/16] perf kvm/{x86,s390}: Remove const from kvm_events_tp 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (11 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 12/16] perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 14/16] perf kvm/powerpc: Port perf kvm stat to powerpc Arnaldo Carvalho de Melo ` (3 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Hemant Kumar, Alexander Yarygin, Michael Ellerman, Naveen N. Rao, Paul Mackerras, Scott Wood, Srikar Dronamraju, linuxppc-dev, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Hemant Kumar <hemant@linux.vnet.ibm.com> This patch removes the "const" qualifier from kvm_events_tp declaration to account for the fact that some architectures may need to update this variable dynamically. For instance, powerpc will need to update this variable dynamically depending on the machine type. Signed-off-by: Hemant Kumar <hemant@linux.vnet.ibm.com> Acked-by: David Ahern <dsahern@gmail.com> Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Scott Wood <scottwood@freescale.com> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1453962787-15376-2-git-send-email-hemant@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/arch/s390/util/kvm-stat.c | 2 +- tools/perf/arch/x86/util/kvm-stat.c | 2 +- tools/perf/util/kvm-stat.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/perf/arch/s390/util/kvm-stat.c b/tools/perf/arch/s390/util/kvm-stat.c index b85a94b19c25..ed57df2e6d68 100644 --- a/tools/perf/arch/s390/util/kvm-stat.c +++ b/tools/perf/arch/s390/util/kvm-stat.c @@ -79,7 +79,7 @@ static struct kvm_events_ops exit_events = { .name = "VM-EXIT" }; -const char * const kvm_events_tp[] = { +const char *kvm_events_tp[] = { "kvm:kvm_s390_sie_enter", "kvm:kvm_s390_sie_exit", "kvm:kvm_s390_intercept_instruction", diff --git a/tools/perf/arch/x86/util/kvm-stat.c b/tools/perf/arch/x86/util/kvm-stat.c index babefda4c862..b63d4be655a2 100644 --- a/tools/perf/arch/x86/util/kvm-stat.c +++ b/tools/perf/arch/x86/util/kvm-stat.c @@ -129,7 +129,7 @@ static struct kvm_events_ops ioport_events = { .name = "IO Port Access" }; -const char * const kvm_events_tp[] = { +const char *kvm_events_tp[] = { "kvm:kvm_entry", "kvm:kvm_exit", "kvm:kvm_mmio", diff --git a/tools/perf/util/kvm-stat.h b/tools/perf/util/kvm-stat.h index dd55548ef66a..c965dc844df3 100644 --- a/tools/perf/util/kvm-stat.h +++ b/tools/perf/util/kvm-stat.h @@ -133,7 +133,7 @@ bool kvm_entry_event(struct perf_evsel *evsel); */ int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid); -extern const char * const kvm_events_tp[]; +extern const char *kvm_events_tp[]; extern struct kvm_reg_events_ops kvm_reg_events_ops[]; extern const char * const kvm_skip_events[]; extern const char *vcpu_id_str; -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 14/16] perf kvm/powerpc: Port perf kvm stat to powerpc 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (12 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 13/16] perf kvm/{x86,s390}: Remove const from kvm_events_tp Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 15/16] perf kvm/powerpc: Add support for HCALL reasons Arnaldo Carvalho de Melo ` (2 subsequent siblings) 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Hemant Kumar, Alexander Yarygin, David Ahern, Michael Ellerman, Naveen N. Rao, Paul Mackerras, Scott Wood, Srikar Dronamraju, linuxppc-dev, Arnaldo Carvalho de Melo See http://www.infradead.org/rpr.html From: Hemant Kumar <hemant@linux.vnet.ibm.com> perf kvm can be used to analyze guest exit reasons. This support already exists in x86. Hence, porting it to powerpc. - To trace KVM events : perf kvm stat record If many guests are running, we can track for a specific guest by using --pid as in : perf kvm stat record --pid <pid> - To see the results : perf kvm stat report The result shows the number of exits (from the guest context to host/hypervisor context) grouped by their respective exit reasons with their frequency. Since, different powerpc machines have different KVM tracepoints, this patch discovers the available tracepoints dynamically and accordingly looks for them. If any single tracepoint is not present, this support won't be enabled for reporting. To record, this will fail if any of the events we are looking to record isn't available. Right now, its only supported on PowerPC Book3S_HV architectures. To analyze the different exits, group them and present them (in a slight descriptive way) to the user, we need a mapping between the "exit code" (dumped in the kvm_guest_exit tracepoint data) and to its related Interrupt vector description (exit reason). This patch adds this mapping in book3s_hv_exits.h. It records on two available KVM tracepoints for book3s_hv: "kvm_hv:kvm_guest_exit" and "kvm_hv:kvm_guest_enter". Here is a sample o/p: # pgrep qemu 19378 60515 2 Guests are running on the host. # perf kvm stat record -a ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 4.153 MB perf.data.guest (39624 samples) ] # perf kvm stat report -p 60515 Analyze events for pid(s) 60515, all VCPUs: VM-EXIT Samples Samples% Time% MinTime MaxTime Avg time SYSCALL 9141 63.67% 7.49% 1.26us 5782.39us 9.87us (+- 6.46%) H_DATA_STORAGE 4114 28.66% 5.07% 1.72us 4597.68us 14.84us (+-20.06%) HV_DECREMENTER 418 2.91% 4.26% 0.70us 30002.22us 122.58us (+-70.29%) EXTERNAL 392 2.73% 0.06% 0.64us 104.10us 1.94us (+-18.83%) RETURN_TO_HOST 287 2.00% 83.11% 1.53us 124240.15us 3486.52us (+-16.81%) H_INST_STORAGE 5 0.03% 0.00% 1.88us 3.73us 2.39us (+-14.20%) Total Samples:14357, Total events handled time:1203918.42us. Signed-off-by: Hemant Kumar <hemant@linux.vnet.ibm.com> Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Scott Wood <scottwood@freescale.com> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1453962787-15376-3-git-send-email-hemant@linux.vnet.ibm.com Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/arch/powerpc/Makefile | 2 + tools/perf/arch/powerpc/util/Build | 1 + tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 ++++++++ tools/perf/arch/powerpc/util/kvm-stat.c | 107 +++++++++++++++++++++++++ tools/perf/builtin-kvm.c | 18 +++++ tools/perf/util/kvm-stat.h | 1 + 6 files changed, 162 insertions(+) create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile index 7fbca175099e..9f9cea3478fd 100644 --- a/tools/perf/arch/powerpc/Makefile +++ b/tools/perf/arch/powerpc/Makefile @@ -1,3 +1,5 @@ ifndef NO_DWARF PERF_HAVE_DWARF_REGS := 1 endif + +HAVE_KVM_STAT_SUPPORT := 1 diff --git a/tools/perf/arch/powerpc/util/Build b/tools/perf/arch/powerpc/util/Build index 7b8b0d1a1b62..c8fe2074d217 100644 --- a/tools/perf/arch/powerpc/util/Build +++ b/tools/perf/arch/powerpc/util/Build @@ -1,5 +1,6 @@ libperf-y += header.o libperf-y += sym-handling.o +libperf-y += kvm-stat.o libperf-$(CONFIG_DWARF) += dwarf-regs.o libperf-$(CONFIG_DWARF) += skip-callchain-idx.o diff --git a/tools/perf/arch/powerpc/util/book3s_hv_exits.h b/tools/perf/arch/powerpc/util/book3s_hv_exits.h new file mode 100644 index 000000000000..e68ba2da8970 --- /dev/null +++ b/tools/perf/arch/powerpc/util/book3s_hv_exits.h @@ -0,0 +1,33 @@ +#ifndef ARCH_PERF_BOOK3S_HV_EXITS_H +#define ARCH_PERF_BOOK3S_HV_EXITS_H + +/* + * PowerPC Interrupt vectors : exit code to name mapping + */ + +#define kvm_trace_symbol_exit \ + {0x0, "RETURN_TO_HOST"}, \ + {0x100, "SYSTEM_RESET"}, \ + {0x200, "MACHINE_CHECK"}, \ + {0x300, "DATA_STORAGE"}, \ + {0x380, "DATA_SEGMENT"}, \ + {0x400, "INST_STORAGE"}, \ + {0x480, "INST_SEGMENT"}, \ + {0x500, "EXTERNAL"}, \ + {0x501, "EXTERNAL_LEVEL"}, \ + {0x502, "EXTERNAL_HV"}, \ + {0x600, "ALIGNMENT"}, \ + {0x700, "PROGRAM"}, \ + {0x800, "FP_UNAVAIL"}, \ + {0x900, "DECREMENTER"}, \ + {0x980, "HV_DECREMENTER"}, \ + {0xc00, "SYSCALL"}, \ + {0xd00, "TRACE"}, \ + {0xe00, "H_DATA_STORAGE"}, \ + {0xe20, "H_INST_STORAGE"}, \ + {0xe40, "H_EMUL_ASSIST"}, \ + {0xf00, "PERFMON"}, \ + {0xf20, "ALTIVEC"}, \ + {0xf40, "VSX"} + +#endif diff --git a/tools/perf/arch/powerpc/util/kvm-stat.c b/tools/perf/arch/powerpc/util/kvm-stat.c new file mode 100644 index 000000000000..27bc559b8b3a --- /dev/null +++ b/tools/perf/arch/powerpc/util/kvm-stat.c @@ -0,0 +1,107 @@ +#include "util/kvm-stat.h" +#include "util/parse-events.h" + +#include "book3s_hv_exits.h" + +#define NR_TPS 2 + +const char *vcpu_id_str = "vcpu_id"; +const int decode_str_len = 40; +const char *kvm_entry_trace = "kvm_hv:kvm_guest_enter"; +const char *kvm_exit_trace = "kvm_hv:kvm_guest_exit"; + +define_exit_reasons_table(hv_exit_reasons, kvm_trace_symbol_exit); + +/* Tracepoints specific to ppc_book3s_hv */ +const char *ppc_book3s_hv_kvm_tp[] = { + "kvm_hv:kvm_guest_enter", + "kvm_hv:kvm_guest_exit", +}; + +/* 1 extra placeholder for NULL */ +const char *kvm_events_tp[NR_TPS + 1]; +const char *kvm_exit_reason; + +static struct kvm_events_ops exit_events = { + .is_begin_event = exit_event_begin, + .is_end_event = exit_event_end, + .decode_key = exit_event_decode_key, + .name = "VM-EXIT" +}; + +struct kvm_reg_events_ops kvm_reg_events_ops[] = { + { .name = "vmexit", .ops = &exit_events }, + { NULL, NULL }, +}; + +const char * const kvm_skip_events[] = { + NULL, +}; + + +static int is_tracepoint_available(const char *str, struct perf_evlist *evlist) +{ + struct parse_events_error err; + int ret; + + err.str = NULL; + ret = parse_events(evlist, str, &err); + if (err.str) + pr_err("%s : %s\n", str, err.str); + return ret; +} + +static int ppc__setup_book3s_hv(struct perf_kvm_stat *kvm, + struct perf_evlist *evlist) +{ + const char **events_ptr; + int i, nr_tp = 0, err = -1; + + /* Check for book3s_hv tracepoints */ + for (events_ptr = ppc_book3s_hv_kvm_tp; *events_ptr; events_ptr++) { + err = is_tracepoint_available(*events_ptr, evlist); + if (err) + return -1; + nr_tp++; + } + + for (i = 0; i < nr_tp; i++) + kvm_events_tp[i] = ppc_book3s_hv_kvm_tp[i]; + + kvm_events_tp[i] = NULL; + kvm_exit_reason = "trap"; + kvm->exit_reasons = hv_exit_reasons; + kvm->exit_reasons_isa = "HV"; + + return 0; +} + +/* Wrapper to setup kvm tracepoints */ +static int ppc__setup_kvm_tp(struct perf_kvm_stat *kvm) +{ + struct perf_evlist *evlist = perf_evlist__new(); + + if (evlist == NULL) + return -ENOMEM; + + /* Right now, only supported on book3s_hv */ + return ppc__setup_book3s_hv(kvm, evlist); +} + +int setup_kvm_events_tp(struct perf_kvm_stat *kvm) +{ + return ppc__setup_kvm_tp(kvm); +} + +int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid __maybe_unused) +{ + int ret; + + ret = ppc__setup_kvm_tp(kvm); + if (ret) { + kvm->exit_reasons = NULL; + kvm->exit_reasons_isa = NULL; + } + + return ret; +} diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index ab5645cf39d2..bff666458b28 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -1132,6 +1132,11 @@ exit: _p; \ }) +int __weak setup_kvm_events_tp(struct perf_kvm_stat *kvm __maybe_unused) +{ + return 0; +} + static int kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv) { @@ -1148,7 +1153,14 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv) NULL }; const char * const *events_tp; + int ret; + events_tp_size = 0; + ret = setup_kvm_events_tp(kvm); + if (ret < 0) { + pr_err("Unable to setup the kvm tracepoints\n"); + return ret; + } for (events_tp = kvm_events_tp; *events_tp; events_tp++) events_tp_size++; @@ -1377,6 +1389,12 @@ static int kvm_events_live(struct perf_kvm_stat *kvm, /* * generate the event list */ + err = setup_kvm_events_tp(kvm); + if (err < 0) { + pr_err("Unable to setup the kvm tracepoints\n"); + return err; + } + kvm->evlist = kvm_live_event_list(); if (kvm->evlist == NULL) { err = -1; diff --git a/tools/perf/util/kvm-stat.h b/tools/perf/util/kvm-stat.h index c965dc844df3..d01e73592f6e 100644 --- a/tools/perf/util/kvm-stat.h +++ b/tools/perf/util/kvm-stat.h @@ -122,6 +122,7 @@ void exit_event_decode_key(struct perf_kvm_stat *kvm, bool kvm_exit_event(struct perf_evsel *evsel); bool kvm_entry_event(struct perf_evsel *evsel); +int setup_kvm_events_tp(struct perf_kvm_stat *kvm); #define define_exit_reasons_table(name, symbols) \ static struct exit_reasons_table name[] = { \ -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 15/16] perf kvm/powerpc: Add support for HCALL reasons 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (13 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 14/16] perf kvm/powerpc: Port perf kvm stat to powerpc Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 16/16] perf build: Align the names of the build tests: Arnaldo Carvalho de Melo 2016-02-03 10:02 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Hemant Kumar, Alexander Yarygin, David Ahern, Michael Ellerman, Naveen N. Rao, Paul Mackerras, Scott Wood, Srikar Dronamraju, linuxppc-dev, Arnaldo Carvalho de Melo From: Hemant Kumar <hemant@linux.vnet.ibm.com> Powerpc provides hcall events that also provides insights into guest behaviour. Enhance perf kvm stat to record and analyze hcall events. - To trace hcall events : perf kvm stat record - To show the results : perf kvm stat report --event=hcall The result shows the number of hypervisor calls from the guest grouped by their respective reasons displayed with the frequency. This patch makes use of two additional tracepoints "kvm_hv:kvm_hcall_enter" and "kvm_hv:kvm_hcall_exit". To map the hcall codes to their respective names, it needs a mapping. Such mapping is added in this patch in book3s_hcalls.h. # pgrep qemu A sample output : 19378 60515 2 VMs running. # perf kvm stat record -a ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 4.153 MB perf.data.guest (39624 samples) ] # perf kvm stat report -p 60515 --event=hcall Analyze events for all VMs, all VCPUs: HCALL-EVENT Samples Samples% Time% MinTime MaxTime AvgTime H_IPI 822 66.08% 88.10% 0.63us 11.38us 2.05us (+- 1.42%) H_SEND_CRQ 144 11.58% 3.77% 0.41us 0.88us 0.50us (+- 1.47%) H_VIO_SIGNAL 118 9.49% 2.86% 0.37us 0.83us 0.47us (+- 1.43%) H_PUT_TERM_CHAR 76 6.11% 2.07% 0.37us 0.90us 0.52us (+- 2.43%) H_GET_TERM_CHAR 74 5.95% 2.23% 0.37us 1.70us 0.58us (+- 4.77%) H_RTAS 6 0.48% 0.85% 1.10us 9.25us 2.70us (+-48.57%) H_PERFMON 4 0.32% 0.12% 0.41us 0.96us 0.59us (+-20.92%) Total Samples:1244, Total events handled time:1916.69us. Signed-off-by: Hemant Kumar <hemant@linux.vnet.ibm.com> Cc: Alexander Yarygin <yarygin@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Scott Wood <scottwood@freescale.com> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1453962787-15376-4-git-send-email-hemant@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 +++++++++++++++++++++++++++ tools/perf/arch/powerpc/util/kvm-stat.c | 65 +++++++++++++- 2 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h diff --git a/tools/perf/arch/powerpc/util/book3s_hcalls.h b/tools/perf/arch/powerpc/util/book3s_hcalls.h new file mode 100644 index 000000000000..0dd6b7f2d44f --- /dev/null +++ b/tools/perf/arch/powerpc/util/book3s_hcalls.h @@ -0,0 +1,123 @@ +#ifndef ARCH_PERF_BOOK3S_HV_HCALLS_H +#define ARCH_PERF_BOOK3S_HV_HCALLS_H + +/* + * PowerPC HCALL codes : hcall code to name mapping + */ +#define kvm_trace_symbol_hcall \ + {0x4, "H_REMOVE"}, \ + {0x8, "H_ENTER"}, \ + {0xc, "H_READ"}, \ + {0x10, "H_CLEAR_MOD"}, \ + {0x14, "H_CLEAR_REF"}, \ + {0x18, "H_PROTECT"}, \ + {0x1c, "H_GET_TCE"}, \ + {0x20, "H_PUT_TCE"}, \ + {0x24, "H_SET_SPRG0"}, \ + {0x28, "H_SET_DABR"}, \ + {0x2c, "H_PAGE_INIT"}, \ + {0x30, "H_SET_ASR"}, \ + {0x34, "H_ASR_ON"}, \ + {0x38, "H_ASR_OFF"}, \ + {0x3c, "H_LOGICAL_CI_LOAD"}, \ + {0x40, "H_LOGICAL_CI_STORE"}, \ + {0x44, "H_LOGICAL_CACHE_LOAD"}, \ + {0x48, "H_LOGICAL_CACHE_STORE"}, \ + {0x4c, "H_LOGICAL_ICBI"}, \ + {0x50, "H_LOGICAL_DCBF"}, \ + {0x54, "H_GET_TERM_CHAR"}, \ + {0x58, "H_PUT_TERM_CHAR"}, \ + {0x5c, "H_REAL_TO_LOGICAL"}, \ + {0x60, "H_HYPERVISOR_DATA"}, \ + {0x64, "H_EOI"}, \ + {0x68, "H_CPPR"}, \ + {0x6c, "H_IPI"}, \ + {0x70, "H_IPOLL"}, \ + {0x74, "H_XIRR"}, \ + {0x78, "H_MIGRATE_DMA"}, \ + {0x7c, "H_PERFMON"}, \ + {0xdc, "H_REGISTER_VPA"}, \ + {0xe0, "H_CEDE"}, \ + {0xe4, "H_CONFER"}, \ + {0xe8, "H_PROD"}, \ + {0xec, "H_GET_PPP"}, \ + {0xf0, "H_SET_PPP"}, \ + {0xf4, "H_PURR"}, \ + {0xf8, "H_PIC"}, \ + {0xfc, "H_REG_CRQ"}, \ + {0x100, "H_FREE_CRQ"}, \ + {0x104, "H_VIO_SIGNAL"}, \ + {0x108, "H_SEND_CRQ"}, \ + {0x110, "H_COPY_RDMA"}, \ + {0x114, "H_REGISTER_LOGICAL_LAN"}, \ + {0x118, "H_FREE_LOGICAL_LAN"}, \ + {0x11c, "H_ADD_LOGICAL_LAN_BUFFER"}, \ + {0x120, "H_SEND_LOGICAL_LAN"}, \ + {0x124, "H_BULK_REMOVE"}, \ + {0x130, "H_MULTICAST_CTRL"}, \ + {0x134, "H_SET_XDABR"}, \ + {0x138, "H_STUFF_TCE"}, \ + {0x13c, "H_PUT_TCE_INDIRECT"}, \ + {0x14c, "H_CHANGE_LOGICAL_LAN_MAC"}, \ + {0x150, "H_VTERM_PARTNER_INFO"}, \ + {0x154, "H_REGISTER_VTERM"}, \ + {0x158, "H_FREE_VTERM"}, \ + {0x15c, "H_RESET_EVENTS"}, \ + {0x160, "H_ALLOC_RESOURCE"}, \ + {0x164, "H_FREE_RESOURCE"}, \ + {0x168, "H_MODIFY_QP"}, \ + {0x16c, "H_QUERY_QP"}, \ + {0x170, "H_REREGISTER_PMR"}, \ + {0x174, "H_REGISTER_SMR"}, \ + {0x178, "H_QUERY_MR"}, \ + {0x17c, "H_QUERY_MW"}, \ + {0x180, "H_QUERY_HCA"}, \ + {0x184, "H_QUERY_PORT"}, \ + {0x188, "H_MODIFY_PORT"}, \ + {0x18c, "H_DEFINE_AQP1"}, \ + {0x190, "H_GET_TRACE_BUFFER"}, \ + {0x194, "H_DEFINE_AQP0"}, \ + {0x198, "H_RESIZE_MR"}, \ + {0x19c, "H_ATTACH_MCQP"}, \ + {0x1a0, "H_DETACH_MCQP"}, \ + {0x1a4, "H_CREATE_RPT"}, \ + {0x1a8, "H_REMOVE_RPT"}, \ + {0x1ac, "H_REGISTER_RPAGES"}, \ + {0x1b0, "H_DISABLE_AND_GETC"}, \ + {0x1b4, "H_ERROR_DATA"}, \ + {0x1b8, "H_GET_HCA_INFO"}, \ + {0x1bc, "H_GET_PERF_COUNT"}, \ + {0x1c0, "H_MANAGE_TRACE"}, \ + {0x1d4, "H_FREE_LOGICAL_LAN_BUFFER"}, \ + {0x1d8, "H_POLL_PENDING"}, \ + {0x1e4, "H_QUERY_INT_STATE"}, \ + {0x244, "H_ILLAN_ATTRIBUTES"}, \ + {0x250, "H_MODIFY_HEA_QP"}, \ + {0x254, "H_QUERY_HEA_QP"}, \ + {0x258, "H_QUERY_HEA"}, \ + {0x25c, "H_QUERY_HEA_PORT"}, \ + {0x260, "H_MODIFY_HEA_PORT"}, \ + {0x264, "H_REG_BCMC"}, \ + {0x268, "H_DEREG_BCMC"}, \ + {0x26c, "H_REGISTER_HEA_RPAGES"}, \ + {0x270, "H_DISABLE_AND_GET_HEA"}, \ + {0x274, "H_GET_HEA_INFO"}, \ + {0x278, "H_ALLOC_HEA_RESOURCE"}, \ + {0x284, "H_ADD_CONN"}, \ + {0x288, "H_DEL_CONN"}, \ + {0x298, "H_JOIN"}, \ + {0x2a4, "H_VASI_STATE"}, \ + {0x2b0, "H_ENABLE_CRQ"}, \ + {0x2b8, "H_GET_EM_PARMS"}, \ + {0x2d0, "H_SET_MPP"}, \ + {0x2d4, "H_GET_MPP"}, \ + {0x2ec, "H_HOME_NODE_ASSOCIATIVITY"}, \ + {0x2f4, "H_BEST_ENERGY"}, \ + {0x2fc, "H_XIRR_X"}, \ + {0x300, "H_RANDOM"}, \ + {0x304, "H_COP"}, \ + {0x314, "H_GET_MPP_X"}, \ + {0x31c, "H_SET_MODE"}, \ + {0xf000, "H_RTAS"} \ + +#endif diff --git a/tools/perf/arch/powerpc/util/kvm-stat.c b/tools/perf/arch/powerpc/util/kvm-stat.c index 27bc559b8b3a..74eee30398f8 100644 --- a/tools/perf/arch/powerpc/util/kvm-stat.c +++ b/tools/perf/arch/powerpc/util/kvm-stat.c @@ -1,9 +1,11 @@ #include "util/kvm-stat.h" #include "util/parse-events.h" +#include "util/debug.h" #include "book3s_hv_exits.h" +#include "book3s_hcalls.h" -#define NR_TPS 2 +#define NR_TPS 4 const char *vcpu_id_str = "vcpu_id"; const int decode_str_len = 40; @@ -11,17 +13,77 @@ const char *kvm_entry_trace = "kvm_hv:kvm_guest_enter"; const char *kvm_exit_trace = "kvm_hv:kvm_guest_exit"; define_exit_reasons_table(hv_exit_reasons, kvm_trace_symbol_exit); +define_exit_reasons_table(hcall_reasons, kvm_trace_symbol_hcall); /* Tracepoints specific to ppc_book3s_hv */ const char *ppc_book3s_hv_kvm_tp[] = { "kvm_hv:kvm_guest_enter", "kvm_hv:kvm_guest_exit", + "kvm_hv:kvm_hcall_enter", + "kvm_hv:kvm_hcall_exit", + NULL, }; /* 1 extra placeholder for NULL */ const char *kvm_events_tp[NR_TPS + 1]; const char *kvm_exit_reason; +static void hcall_event_get_key(struct perf_evsel *evsel, + struct perf_sample *sample, + struct event_key *key) +{ + key->info = 0; + key->key = perf_evsel__intval(evsel, sample, "req"); +} + +static const char *get_hcall_exit_reason(u64 exit_code) +{ + struct exit_reasons_table *tbl = hcall_reasons; + + while (tbl->reason != NULL) { + if (tbl->exit_code == exit_code) + return tbl->reason; + tbl++; + } + + pr_debug("Unknown hcall code: %lld\n", + (unsigned long long)exit_code); + return "UNKNOWN"; +} + +static bool hcall_event_end(struct perf_evsel *evsel, + struct perf_sample *sample __maybe_unused, + struct event_key *key __maybe_unused) +{ + return (!strcmp(evsel->name, kvm_events_tp[3])); +} + +static bool hcall_event_begin(struct perf_evsel *evsel, + struct perf_sample *sample, struct event_key *key) +{ + if (!strcmp(evsel->name, kvm_events_tp[2])) { + hcall_event_get_key(evsel, sample, key); + return true; + } + + return false; +} +static void hcall_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, + struct event_key *key, + char *decode) +{ + const char *hcall_reason = get_hcall_exit_reason(key->key); + + scnprintf(decode, decode_str_len, "%s", hcall_reason); +} + +static struct kvm_events_ops hcall_events = { + .is_begin_event = hcall_event_begin, + .is_end_event = hcall_event_end, + .decode_key = hcall_event_decode_key, + .name = "HCALL-EVENT", +}; + static struct kvm_events_ops exit_events = { .is_begin_event = exit_event_begin, .is_end_event = exit_event_end, @@ -31,6 +93,7 @@ static struct kvm_events_ops exit_events = { struct kvm_reg_events_ops kvm_reg_events_ops[] = { { .name = "vmexit", .ops = &exit_events }, + { .name = "hcall", .ops = &hcall_events }, { NULL, NULL }, }; -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [PATCH 16/16] perf build: Align the names of the build tests: 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (14 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 15/16] perf kvm/powerpc: Add support for HCALL reasons Arnaldo Carvalho de Melo @ 2016-01-29 21:17 ` Arnaldo Carvalho de Melo 2016-02-03 10:02 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar 16 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-01-29 21:17 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan See http://www.infradead.org/rpr.html From: Arnaldo Carvalho de Melo <acme@redhat.com> $ make -C tools/perf build-test make[1]: Entering directory `/home/acme/git/linux/tools/perf' make_pure_O: cd . && make -f Makefile O=/tmp/tmp.mPx0Cmik3f DESTDIR=/tmp/tmp.U0SUmVbtJm make_clean_all_O: cd . && make -f Makefile O=/tmp/tmp.Yl5UzhTU7T DESTDIR=/tmp/tmp.fop1E4jdER clean all make_debug_O: cd . && make -f Makefile O=/tmp/tmp.pMn2ozBoXC DESTDIR=/tmp/tmp.azxhDp5sEp DEBUG=1 make_no_libperl_O: cd . && make -f Makefile O=/tmp/tmp.qJPiINMtA7 DESTDIR=/tmp/tmp.KNMrLeGDxZ NO_LIBPERL=1 <SNIP> More needs to be done to make it more compact, i.e. elide the '-f Makefile', remove that 'cd . &&', move the DESTDIR= and O= to the end, as they don't convey that much information besides the fact that they are being set to some random directory just for this build, move the meat, i.e. the meaningful feature disabling bits to the start, etc. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-wir3w3o4f1nmbgcxgnx8cj9c@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/tests/make | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/make b/tools/perf/tests/make index 7f663f4611c6..cc72b67bde5e 100644 --- a/tools/perf/tests/make +++ b/tools/perf/tests/make @@ -261,6 +261,8 @@ run := $(shell shuf -e $(run)) run_O := $(shell shuf -e $(run_O)) endif +max_width := $(shell echo $(run_O) | sed 's/ /\n/g' | wc -L) + ifdef DEBUG d := $(info run $(run)) d := $(info run_O $(run_O)) @@ -274,7 +276,7 @@ $(run): $(call clean) @TMP_DEST=$$(mktemp -d); \ cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \ - echo "- $@: $$cmd" && echo $$cmd > $@ && \ + printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \ ( eval $$cmd ) >> $@ 2>&1; \ echo " test: $(call test,$@)" >> $@ 2>&1; \ $(call test,$@) && \ @@ -285,7 +287,7 @@ $(run_O): @TMP_O=$$(mktemp -d); \ TMP_DEST=$$(mktemp -d); \ cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) O=$$TMP_O DESTDIR=$$TMP_DEST $($(patsubst %_O,%,$@))"; \ - echo "- $@: $$cmd" && echo $$cmd > $@ && \ + printf "%*.*s: %s\n" $(max_width) $(max_width) "$@" "$$cmd" && echo $$cmd > $@ && \ ( eval $$cmd ) >> $@ 2>&1 && \ echo " test: $(call test_O,$@)" >> $@ 2>&1; \ $(call test_O,$@) && \ -- 2.5.0 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo ` (15 preceding siblings ...) 2016-01-29 21:17 ` [PATCH 16/16] perf build: Align the names of the build tests: Arnaldo Carvalho de Melo @ 2016-02-03 10:02 ` Ingo Molnar 16 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2016-02-03 10:02 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Alexander Yarygin, Alexei Starovoitov, Al Grant, Brendan Gregg, Chunyan Zhang, Daniel Borkmann, David Ahern, He Kuang, Hemant Kumar, Jiri Olsa, linux-arm-kernel, linux-doc, linuxppc-dev, Li Zefan, Masami Hiramatsu, Mathieu Poirier, Michael Ellerman, Mike Leach, Namhyung Kim, Naveen N . Rao, Paul Mackerras, Peter Zijlstra, pi3orama, Rabin Vincent, Scott Wood, Srikar Dronamraju, Tor Jeremiassen, Wang Nan, Will Deacon, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > This is on top of the previously submitted perf-core-for-mingo tag, > please consider applying, > > - Arnaldo > > The following changes since commit 5ac76283b32b116c58e362e99542182ddcfc8262: > > perf cpumap: Auto initialize cpu__max_{node,cpu} (2016-01-26 16:08:36 -0300) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2 > > for you to fetch changes up to 814568db641f6587c1e98a3a85f214cb6a30fe10: > > perf build: Align the names of the build tests: (2016-01-29 17:51:04 -0300) > > ---------------------------------------------------------------- > New features: > > - Port 'perf kvm stat' to PowerPC (Hemant Kumar) > > Infrastructure: > > - Use the 'feature-dump' target to do the feature checks just once and then > add code to reuse that in the tests/make makefile, speeding up the > 'make -C tools/perf build-test' target (Wang Nan) > > - Reduce the number of tests the 'build-test' target do to those that don't > pollute the source tree (Arnaldo Carvalho de Melo) > > - Improve the output of the build tests a bit by aligning the name of the > tests, more can be done to filter out uninteresting info in the output > (Arnaldo Carvalho de Melo) > > - Add perf_evlist pointer to *info_priv_size(), more prep work for > supporting the coresight architecture (Mathieu Poirier) > > - Improve the 'perf test bp_signal' test (Wang Nan) > > - Check environment before starting the BPF 'perf test', so that we can just > 'Skip' older kernels instead of 'FAIL'ing them (Wang Nan) > > - Fix cpumode of synthesized buildid event (Wang Nan) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (2): > perf tools: Speed up build-tests by reducing the number of builds tested > perf build: Align the names of the build tests: > > Hemant Kumar (4): > perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h > perf kvm/{x86,s390}: Remove const from kvm_events_tp > perf kvm/powerpc: Port perf kvm stat to powerpc > perf kvm/powerpc: Add support for HCALL reasons > > Jiri Olsa (1): > perf build: Fix feature-dump checks, we need to test all features > > Mathieu Poirier (1): > perf auxtrace: Add perf_evlist pointer to *info_priv_size() > > Wang Nan (8): > tools build: Check basic headers for test-compile feature checker > perf build: Remove all condition feature check {C,LD}FLAGS > perf build: Use feature dump file for build-test > perf buildid: Fix cpumode of buildid event > perf test: Check environment before start real BPF test > perf test: Improve bp_signal > perf tools: Move timestamp creation to util > perf record: Use OPT_BOOLEAN_SET for buildid cache related options > > tools/build/Makefile.feature | 8 ++ > tools/build/feature/test-compile.c | 2 + > tools/perf/Makefile | 11 +- > tools/perf/arch/powerpc/Makefile | 2 + > tools/perf/arch/powerpc/util/Build | 1 + > tools/perf/arch/powerpc/util/book3s_hcalls.h | 123 ++++++++++++++++++ > tools/perf/arch/powerpc/util/book3s_hv_exits.h | 33 +++++ > tools/perf/arch/powerpc/util/kvm-stat.c | 170 +++++++++++++++++++++++++ > tools/perf/arch/s390/util/kvm-stat.c | 10 +- > tools/perf/arch/x86/util/intel-bts.c | 4 +- > tools/perf/arch/x86/util/intel-pt.c | 4 +- > tools/perf/arch/x86/util/kvm-stat.c | 16 ++- > tools/perf/builtin-buildid-cache.c | 14 +- > tools/perf/builtin-kvm.c | 38 ++++-- > tools/perf/builtin-record.c | 12 +- > tools/perf/config/Makefile | 101 +++++++-------- > tools/perf/tests/bp_signal.c | 140 ++++++++++++++++---- > tools/perf/tests/bpf.c | 37 ++++++ > tools/perf/tests/make | 39 +++++- > tools/perf/util/auxtrace.c | 7 +- > tools/perf/util/auxtrace.h | 6 +- > tools/perf/util/build-id.c | 6 +- > tools/perf/util/kvm-stat.h | 8 +- > tools/perf/util/util.c | 17 +++ > tools/perf/util/util.h | 1 + > 25 files changed, 688 insertions(+), 122 deletions(-) > create mode 100644 tools/perf/arch/powerpc/util/book3s_hcalls.h > create mode 100644 tools/perf/arch/powerpc/util/book3s_hv_exits.h > create mode 100644 tools/perf/arch/powerpc/util/kvm-stat.c Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2019-01-04 18:33 Arnaldo Carvalho de Melo 2019-01-08 15:32 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-01-04 18:33 UTC (permalink / raw) To: Ingo Molnar Cc: Clark Williams, linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo, Arnaldo Carvalho de Melo, Ivan Krylov, Jin Yao, Mattias Jacobsson Hi Ingo, Please consider pulling, Best regards, - Arnaldo Test results at the end of this message, as usual. The following changes since commit 2573be22e5b6f24a0cabc97715c808c47e29eaaf: Merge tag 'perf-core-for-mingo-4.21-20190103' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-01-03 14:05:16 +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-4.21-20190104 for you to fetch changes up to 03fa483821c0b4db7c2b1453d3332f397d82313f: perf test shell: Use a fallback to get the pathname in vfs_getname (2019-01-04 15:12:29 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: perf annotate: Ivan Krylov: - Pass filename to objdump via execl, fixing usage with filenames with special characters. perf report: Jin Yao: Fix wrong iteration count in --branch-history perf stat: Jin Yao: - Fix endless wait for child process perf test: Arnaldo Carvalho de Melo: - Use a fallback to get the pathname in vfs_getname in tools build: Jiri Olsa: - Allow overriding CFLAGS assignments. Misc: Arnaldo Carvalho de Melo: - Syncronize UAPI headers Mattias Jacobsson: - Remove redundant va_end() in strbuf_addv() Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (10): tools headers x86: Sync disabled-features.h tools headers uapi: Sync prctl.h with the kernel sources tools beauty: Make the prctl option table generator catch all PR_ options tools headers uapi: Update i915_drm.h tools headers uapi: Sync linux/in.h copy from the kernel sources tools headers uapi: Sync linux/kvm.h with the kernel sources tools headers uapi: Sync copy of asm-generic/unistd.h with the kernel sources tools headers x86: Sync asm/cpufeatures.h copy with the kernel sources perf python: Make sure the python binding output directory is in place perf test shell: Use a fallback to get the pathname in vfs_getname Ivan Krylov (1): perf annotate: Pass filename to objdump via execl Jin Yao (2): perf stat: Fix endless wait for child process perf report: Fix wrong iteration count in --branch-history Jiri Olsa (2): tools thermal tmon: Use -O3 instead of -O1 if available tools iio: Override CFLAGS assignments Mattias Jacobsson (1): perf strbuf: Remove redundant va_end() in strbuf_addv() tools/arch/x86/include/asm/cpufeatures.h | 2 ++ tools/arch/x86/include/asm/disabled-features.h | 8 ++++++- tools/iio/Makefile | 2 +- tools/include/uapi/asm-generic/unistd.h | 4 +++- tools/include/uapi/drm/i915_drm.h | 8 +++++++ tools/include/uapi/linux/in.h | 10 +++++--- tools/include/uapi/linux/kvm.h | 19 +++++++++++++++ tools/include/uapi/linux/prctl.h | 8 +++++++ tools/perf/Makefile.perf | 4 +++- tools/perf/builtin-stat.c | 3 ++- tools/perf/tests/shell/lib/probe_vfs_getname.sh | 3 ++- tools/perf/trace/beauty/prctl_option.sh | 2 +- tools/perf/util/annotate.c | 8 +++---- tools/perf/util/callchain.c | 32 +++++++++++++++---------- tools/perf/util/callchain.h | 1 + tools/perf/util/machine.c | 2 +- tools/perf/util/strbuf.c | 1 - tools/thermal/tmon/Makefile | 2 +- 18 files changed, 90 insertions(+), 29 deletions(-) Test results: The first ones are container based builds of tools/perf with and without libelf support. Where clang is available, it is also used to build perf with/without libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang when clang and its devel libraries are installed. The objtool and samples/bpf/ builds are disabled now that I'm switching from using the sources in a local volume to fetching them from a http server to build it inside the container, to make it easier to build in a container cluster. Those will come back later. Several are cross builds, the ones with -x-ARCH and the android one, and those may not have all the features built, due to lack of multi-arch devel packages, available and being used so far on just a few, like debian:experimental-x-{arm64,mipsel}. The 'perf test' one will perform a variety of tests exercising tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands with a variety of command line event specifications to then intercept the sys_perf_event syscall to check that the perf_event_attr fields are set up as expected, among a variety of other unit tests. Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/ with a variety of feature sets, exercising the build with an incomplete set of features as well as with a complete one. It is planned to have it run on each of the containers mentioned above, using some container orchestration infrastructure. Get in contact if interested in helping having this in place. $ dm 1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0 2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822 3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0 4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0 5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0 6 alpine:edge : Ok gcc (Alpine 8.2.0) 8.2.0 7 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) 8 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) 9 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 10 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 11 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55) 12 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) 13 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) 14 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502 15 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2 16 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2 17 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 18 debian:experimental : Ok gcc (Debian 8.2.0-13) 8.2.0 19 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0 20 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0 21 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.2.0-11) 8.2.0 22 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0 23 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7) 24 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 25 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 26 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) 27 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 28 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) 29 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 30 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 31 fedora:28 : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5) 32 fedora:29 : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5) 33 fedora:rawhide : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5) 34 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0 35 mageia:5 : Ok gcc (GCC) 4.9.2 36 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0 37 opensuse:13.2 : Ok gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064] 38 opensuse:15.0 : Ok gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812] 39 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5 40 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5 41 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5 42 opensuse:tumbleweed : Ok gcc (SUSE Linux) 8.2.1 20181108 [gcc-8-branch revision 265914] 43 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1) 44 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1) 45 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 46 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4 47 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0 48 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609 49 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 50 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 51 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 52 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 53 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 54 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 55 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 56 ubuntu:18.04 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 57 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0 58 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0 59 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 60 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 61 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 62 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 63 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 64 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 65 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 66 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 67 ubuntu:18.10 : Ok gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0 68 ubuntu:19.04 : Ok gcc (Ubuntu 8.2.0-12ubuntu1) 8.2.0 69 ubuntu:19.04-x-alpha : Ok alpha-linux-gnu-gcc (Ubuntu 8.2.0-11ubuntu1) 8.2.0 70 ubuntu:19.04-x-hppa : Ok hppa-linux-gnu-gcc (Ubuntu 8.2.0-11ubuntu1) 8.2.0 # uname -a Linux quaco 4.19.13-300.fc29.x86_64 #1 SMP Sat Dec 29 22:54:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux # git log --oneline -1 03fa483821c0 perf test shell: Use a fallback to get the pathname in vfs_getname # perf version --build-options perf version 4.20.g03fa48 dwarf: [ on ] # HAVE_DWARF_SUPPORT dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT glibc: [ on ] # HAVE_GLIBC_SUPPORT gtk2: [ on ] # HAVE_GTK2_SUPPORT syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT libbfd: [ on ] # HAVE_LIBBFD_SUPPORT libelf: [ on ] # HAVE_LIBELF_SUPPORT libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT libperl: [ on ] # HAVE_LIBPERL_SUPPORT libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT libslang: [ on ] # HAVE_SLANG_SUPPORT libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT zlib: [ on ] # HAVE_ZLIB_SUPPORT lzma: [ on ] # HAVE_LZMA_SUPPORT get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT bpf: [ on ] # HAVE_LIBBPF_SUPPORT # perf test 1: vmlinux symtab matches kallsyms : Ok 2: Detect openat syscall event : Ok 3: Detect openat syscall event on all cpus : Ok 4: Read samples using the mmap interface : Ok 5: Test data source output : Ok 6: Parse event definition strings : Ok 7: Simple expression parser : Ok 8: PERF_RECORD_* events & perf_sample fields : Ok 9: Parse perf pmu format : Ok 10: DSO data read : Ok 11: DSO data cache : Ok 12: DSO data reopen : Ok 13: Roundtrip evsel->name : Ok 14: Parse sched tracepoints fields : Ok 15: syscalls:sys_enter_openat event fields : Ok 16: Setup struct perf_event_attr : Ok 17: Match and link multiple hists : Ok 18: 'import perf' in python : Ok 19: Breakpoint overflow signal handler : Ok 20: Breakpoint overflow sampling : Ok 21: Breakpoint accounting : Ok 22: Watchpoint : 22.1: Read Only Watchpoint : Skip 22.2: Write Only Watchpoint : Ok 22.3: Read / Write Watchpoint : Ok 22.4: Modify Watchpoint : Ok 23: Number of exit events of a simple workload : Ok 24: Software clock events period values : Ok 25: Object code reading : Ok 26: Sample parsing : Ok 27: Use a dummy software event to keep tracking : Ok 28: Parse with no sample_id_all bit set : Ok 29: Filter hist entries : Ok 30: Lookup mmap thread : Ok 31: Share thread mg : Ok 32: Sort output of hist entries : Ok 33: Cumulate child hist entries : Ok 34: Track with sched_switch : Ok 35: Filter fds with revents mask in a fdarray : Ok 36: Add fd to a fdarray, making it autogrow : Ok 37: kmod_path__parse : Ok 38: Thread map : Ok 39: LLVM search and compile : 39.1: Basic BPF llvm compile : Ok 39.2: kbuild searching : Ok 39.3: Compile source for BPF prologue generation : Ok 39.4: Compile source for BPF relocation : Ok 40: Session topology : Ok 41: BPF filter : 41.1: Basic BPF filtering : Ok 41.2: BPF pinning : Ok 41.3: BPF prologue generation : Ok 41.4: BPF relocation checker : Ok 42: Synthesize thread map : Ok 43: Remove thread map : Ok 44: Synthesize cpu map : Ok 45: Synthesize stat config : Ok 46: Synthesize stat : Ok 47: Synthesize stat round : Ok 48: Synthesize attr update : Ok 49: Event times : Ok 50: Read backward ring buffer : Ok 51: Print cpu map : Ok 52: Probe SDT events : Ok 53: is_printable_array : Ok 54: Print bitmap : Ok 55: perf hooks : Ok 56: builtin clang support : Skip (not compiled in) 57: unit_number__scnprintf : Ok 58: mem2node : Ok 59: x86 rdpmc : Ok 60: Convert perf time to TSC : Ok 61: DWARF unwind : Ok 62: x86 instruction decoder - new instructions : Ok 63: x86 bp modify : Ok 64: probe libc's inet_pton & backtrace it with ping : Ok 65: Use vfs_getname probe to get syscall args filenames : Ok 66: Add vfs_getname probe to get syscall args filenames : Ok 67: Check open filename arg using perf trace + vfs_getname: Ok $ make -C tools/perf build-test make: Entering directory '/home/acme/git/perf/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . make_no_demangle_O: make NO_DEMANGLE=1 make_no_libperl_O: make NO_LIBPERL=1 make_no_newt_O: make NO_NEWT=1 make_no_gtk2_O: make NO_GTK2=1 make_no_libbpf_O: make NO_LIBBPF=1 make_static_O: make LDFLAGS=-static make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 make_cscope_O: make cscope make_no_libaudit_O: make NO_LIBAUDIT=1 make_help_O: make help make_no_auxtrace_O: make NO_AUXTRACE=1 make_no_libnuma_O: make NO_LIBNUMA=1 make_perf_o_O: make perf.o make_no_libelf_O: make NO_LIBELF=1 make_install_prefix_O: make install prefix=/tmp/krava make_tags_O: make tags make_no_backtrace_O: make NO_BACKTRACE=1 make_pure_O: make make_no_libunwind_O: make NO_LIBUNWIND=1 make_no_slang_O: make NO_SLANG=1 make_install_O: make install make_clean_all_O: make clean all make_install_bin_O: make install-bin make_no_libpython_O: make NO_LIBPYTHON=1 make_debug_O: make DEBUG=1 make_doc_O: make doc make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 make_with_clangllvm_O: make LIBCLANGLLVM=1 make_util_pmu_bison_o_O: make util/pmu-bison.o make_no_libbionic_O: make NO_LIBBIONIC=1 make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 make_util_map_o_O: make util/map.o make_with_babeltrace_O: make LIBBABELTRACE=1 make_install_prefix_slash_O: make install prefix=/tmp/krava/ make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 OK make: Leaving directory '/home/acme/git/perf/tools/perf' $ ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2019-01-04 18:33 Arnaldo Carvalho de Melo @ 2019-01-08 15:32 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2019-01-08 15:32 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Clark Williams, linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo, Ivan Krylov, Jin Yao, Mattias Jacobsson * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > Best regards, > > - Arnaldo > > Test results at the end of this message, as usual. > > The following changes since commit 2573be22e5b6f24a0cabc97715c808c47e29eaaf: > > Merge tag 'perf-core-for-mingo-4.21-20190103' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-01-03 14:05:16 +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-4.21-20190104 > > for you to fetch changes up to 03fa483821c0b4db7c2b1453d3332f397d82313f: > > perf test shell: Use a fallback to get the pathname in vfs_getname (2019-01-04 15:12:29 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > perf annotate: > > Ivan Krylov: > > - Pass filename to objdump via execl, fixing usage with filenames > with special characters. > > perf report: > > Jin Yao: > > Fix wrong iteration count in --branch-history > > perf stat: > > Jin Yao: > > - Fix endless wait for child process > > perf test: > > Arnaldo Carvalho de Melo: > > - Use a fallback to get the pathname in vfs_getname in > > tools build: > > Jiri Olsa: > > - Allow overriding CFLAGS assignments. > > Misc: > > Arnaldo Carvalho de Melo: > > - Syncronize UAPI headers > > Mattias Jacobsson: > > - Remove redundant va_end() in strbuf_addv() > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (10): > tools headers x86: Sync disabled-features.h > tools headers uapi: Sync prctl.h with the kernel sources > tools beauty: Make the prctl option table generator catch all PR_ options > tools headers uapi: Update i915_drm.h > tools headers uapi: Sync linux/in.h copy from the kernel sources > tools headers uapi: Sync linux/kvm.h with the kernel sources > tools headers uapi: Sync copy of asm-generic/unistd.h with the kernel sources > tools headers x86: Sync asm/cpufeatures.h copy with the kernel sources > perf python: Make sure the python binding output directory is in place > perf test shell: Use a fallback to get the pathname in vfs_getname > > Ivan Krylov (1): > perf annotate: Pass filename to objdump via execl > > Jin Yao (2): > perf stat: Fix endless wait for child process > perf report: Fix wrong iteration count in --branch-history > > Jiri Olsa (2): > tools thermal tmon: Use -O3 instead of -O1 if available > tools iio: Override CFLAGS assignments > > Mattias Jacobsson (1): > perf strbuf: Remove redundant va_end() in strbuf_addv() > > tools/arch/x86/include/asm/cpufeatures.h | 2 ++ > tools/arch/x86/include/asm/disabled-features.h | 8 ++++++- > tools/iio/Makefile | 2 +- > tools/include/uapi/asm-generic/unistd.h | 4 +++- > tools/include/uapi/drm/i915_drm.h | 8 +++++++ > tools/include/uapi/linux/in.h | 10 +++++--- > tools/include/uapi/linux/kvm.h | 19 +++++++++++++++ > tools/include/uapi/linux/prctl.h | 8 +++++++ > tools/perf/Makefile.perf | 4 +++- > tools/perf/builtin-stat.c | 3 ++- > tools/perf/tests/shell/lib/probe_vfs_getname.sh | 3 ++- > tools/perf/trace/beauty/prctl_option.sh | 2 +- > tools/perf/util/annotate.c | 8 +++---- > tools/perf/util/callchain.c | 32 +++++++++++++++---------- > tools/perf/util/callchain.h | 1 + > tools/perf/util/machine.c | 2 +- > tools/perf/util/strbuf.c | 1 - > tools/thermal/tmon/Makefile | 2 +- > 18 files changed, 90 insertions(+), 29 deletions(-) Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2016-07-05 0:38 Arnaldo Carvalho de Melo 2016-07-05 10:14 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2016-07-05 0:38 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Alexei Starovoitov, Ananth N Mavinakayanahalli, Brendan Gregg, Chris Phlipot, Christoph Hellwig, Daniel Borkmann, David Ahern, Eric Leblond, He Kuang, Hemant Kumar, Jiri Olsa, Masami Hiramatsu, Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama, Taeung Song, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, Build status: [root@jouet ~]# dm alpine:3.4: FAIL <--- strerror_r usage needs to be made XSI-compliant, Alpine Linux uses musl libc centos:5: FAIL <--- flex snafu, being investigated by Jiri centos:6: Ok centos:7: Ok debian:7: Ok debian:8: Ok debian:experimental: Ok fedora:21: Ok fedora:22: Ok fedora:23: Ok fedora:24: Ok fedora:rawhide: Ok mageia:5: Ok opensuse:13.2: Ok opensuse:42.1: Ok ubuntu:12.04.5: Ok ubuntu:14.04.4: Ok ubuntu:15.10: Ok ubuntu:16.04: Ok [root@jouet ~]# These images are now available at: https://hub.docker.com/search/?q=acmel And the 'dm' script at: https://fedorapeople.org/~acme/perf/dm Regards, - Arnaldo The following changes since commit dc29bb47a34130459fadd58f05e2acd051a6327d: Merge tag 'perf-core-for-mingo-20160630' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-01 08:40:39 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160704 for you to fetch changes up to f3d082ceabe53177c98bfa4580a294c2844966e8: perf tools: Sync copy of syscall_64.tbl with the kernel (2016-07-04 20:29:40 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: Documentation: - Update android build documentation (Chris Phlipot) Infrastructure: - Respect WERROR=0 in libapi and libsubcmd, to allow building on Android (Chris Phlipot) - Prep work to support SDT events in probe cache (Masami Hiramatsu) - ELF support for SDT (Hemant Kumar) - Add feature detection for libelf's elf_getshdrstrndx function (Arnaldo Carvalho de Melo) - Fix hist accumulation test (Jiri Olsa) - Unwind callchain fixes (Jiri Olsa) - Change internal representation of numa nodes obtained from perf.data header (Jiri Olsa) - Sync copy of syscall_64.tbl with the kernel (Arnaldo Carvalho de Melo) - Add LGPL 2.1 license header to libbpf source files (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (2): perf build: Add feature detection for libelf's elf_getshdrstrndx() perf tools: Sync copy of syscall_64.tbl with the kernel Chris Phlipot (3): tools lib api: Respect WERROR=0 for build tools lib subcmd: Respect WERROR=0 for build perf tools: Update android build documentation Hemant Kumar (1): perf sdt: ELF support for SDT Jiri Olsa (4): perf header: Transform nodes string info to struct perf tests: Fix hist accumulation test perf unwind: Add initialized arg into unwind__prepare_access perf unwind: Call unwind__prepare_access for forked thread Masami Hiramatsu (5): perf probe: Use cache entry if possible perf probe: Show all cached probes perf probe: Remove caches when --cache is given perf probe: Add group name support perf buildid-cache: Scan and import user SDT events to probe cache Wang Nan (1): tools lib bpf: Add license header tools/build/Makefile.feature | 1 + tools/build/feature/Makefile | 4 + tools/build/feature/test-all.c | 5 + tools/build/feature/test-libelf-getshdrstrndx.c | 8 + tools/lib/api/Makefile | 8 +- tools/lib/bpf/bpf.c | 13 ++ tools/lib/bpf/bpf.h | 13 ++ tools/lib/bpf/libbpf.c | 13 ++ tools/lib/bpf/libbpf.h | 13 ++ tools/lib/subcmd/Makefile | 8 +- tools/perf/Documentation/android.txt | 16 +- tools/perf/Documentation/perf-buildid-cache.txt | 3 + tools/perf/Documentation/perf-probe.txt | 19 +- tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 + tools/perf/builtin-probe.c | 31 ++- tools/perf/config/Makefile | 4 + tools/perf/tests/hists_cumulate.c | 4 + tools/perf/util/build-id.c | 138 +++++++++++- tools/perf/util/build-id.h | 3 + tools/perf/util/callchain.h | 1 + tools/perf/util/env.c | 5 +- tools/perf/util/env.h | 10 +- tools/perf/util/header.c | 76 +++---- tools/perf/util/map.c | 9 +- tools/perf/util/map.h | 2 +- tools/perf/util/probe-event.c | 91 +++++++- tools/perf/util/probe-file.c | 175 ++++++++++++++- tools/perf/util/probe-file.h | 10 +- tools/perf/util/symbol-elf.c | 260 ++++++++++++++++++++++ tools/perf/util/symbol.h | 22 ++ tools/perf/util/thread.c | 39 +++- tools/perf/util/unwind-libunwind.c | 11 +- tools/perf/util/unwind.h | 9 +- tools/perf/util/util.c | 19 +- 34 files changed, 940 insertions(+), 105 deletions(-) create mode 100644 tools/build/feature/test-libelf-getshdrstrndx.c ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2016-07-05 0:38 Arnaldo Carvalho de Melo @ 2016-07-05 10:14 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2016-07-05 10:14 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Ananth N Mavinakayanahalli, Brendan Gregg, Chris Phlipot, Christoph Hellwig, Daniel Borkmann, David Ahern, Eric Leblond, He Kuang, Hemant Kumar, Jiri Olsa, Masami Hiramatsu, Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama, Taeung Song, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > Build status: > > [root@jouet ~]# dm > alpine:3.4: FAIL <--- strerror_r usage needs to be made XSI-compliant, Alpine Linux uses musl libc > centos:5: FAIL <--- flex snafu, being investigated by Jiri > centos:6: Ok > centos:7: Ok > debian:7: Ok > debian:8: Ok > debian:experimental: Ok > fedora:21: Ok > fedora:22: Ok > fedora:23: Ok > fedora:24: Ok > fedora:rawhide: Ok > mageia:5: Ok > opensuse:13.2: Ok > opensuse:42.1: Ok > ubuntu:12.04.5: Ok > ubuntu:14.04.4: Ok > ubuntu:15.10: Ok > ubuntu:16.04: Ok > [root@jouet ~]# > > These images are now available at: https://hub.docker.com/search/?q=acmel > > And the 'dm' script at: https://fedorapeople.org/~acme/perf/dm > > Regards, > > - Arnaldo > > The following changes since commit dc29bb47a34130459fadd58f05e2acd051a6327d: > > Merge tag 'perf-core-for-mingo-20160630' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-07-01 08:40:39 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160704 > > for you to fetch changes up to f3d082ceabe53177c98bfa4580a294c2844966e8: > > perf tools: Sync copy of syscall_64.tbl with the kernel (2016-07-04 20:29:40 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > Documentation: > > - Update android build documentation (Chris Phlipot) > > Infrastructure: > > - Respect WERROR=0 in libapi and libsubcmd, to allow building on Android (Chris Phlipot) > > - Prep work to support SDT events in probe cache (Masami Hiramatsu) > > - ELF support for SDT (Hemant Kumar) > > - Add feature detection for libelf's elf_getshdrstrndx function (Arnaldo Carvalho de Melo) > > - Fix hist accumulation test (Jiri Olsa) > > - Unwind callchain fixes (Jiri Olsa) > > - Change internal representation of numa nodes obtained from > perf.data header (Jiri Olsa) > > - Sync copy of syscall_64.tbl with the kernel (Arnaldo Carvalho de Melo) > > - Add LGPL 2.1 license header to libbpf source files (Wang Nan) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (2): > perf build: Add feature detection for libelf's elf_getshdrstrndx() > perf tools: Sync copy of syscall_64.tbl with the kernel > > Chris Phlipot (3): > tools lib api: Respect WERROR=0 for build > tools lib subcmd: Respect WERROR=0 for build > perf tools: Update android build documentation > > Hemant Kumar (1): > perf sdt: ELF support for SDT > > Jiri Olsa (4): > perf header: Transform nodes string info to struct > perf tests: Fix hist accumulation test > perf unwind: Add initialized arg into unwind__prepare_access > perf unwind: Call unwind__prepare_access for forked thread > > Masami Hiramatsu (5): > perf probe: Use cache entry if possible > perf probe: Show all cached probes > perf probe: Remove caches when --cache is given > perf probe: Add group name support > perf buildid-cache: Scan and import user SDT events to probe cache > > Wang Nan (1): > tools lib bpf: Add license header > > tools/build/Makefile.feature | 1 + > tools/build/feature/Makefile | 4 + > tools/build/feature/test-all.c | 5 + > tools/build/feature/test-libelf-getshdrstrndx.c | 8 + > tools/lib/api/Makefile | 8 +- > tools/lib/bpf/bpf.c | 13 ++ > tools/lib/bpf/bpf.h | 13 ++ > tools/lib/bpf/libbpf.c | 13 ++ > tools/lib/bpf/libbpf.h | 13 ++ > tools/lib/subcmd/Makefile | 8 +- > tools/perf/Documentation/android.txt | 16 +- > tools/perf/Documentation/perf-buildid-cache.txt | 3 + > tools/perf/Documentation/perf-probe.txt | 19 +- > tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 + > tools/perf/builtin-probe.c | 31 ++- > tools/perf/config/Makefile | 4 + > tools/perf/tests/hists_cumulate.c | 4 + > tools/perf/util/build-id.c | 138 +++++++++++- > tools/perf/util/build-id.h | 3 + > tools/perf/util/callchain.h | 1 + > tools/perf/util/env.c | 5 +- > tools/perf/util/env.h | 10 +- > tools/perf/util/header.c | 76 +++---- > tools/perf/util/map.c | 9 +- > tools/perf/util/map.h | 2 +- > tools/perf/util/probe-event.c | 91 +++++++- > tools/perf/util/probe-file.c | 175 ++++++++++++++- > tools/perf/util/probe-file.h | 10 +- > tools/perf/util/symbol-elf.c | 260 ++++++++++++++++++++++ > tools/perf/util/symbol.h | 22 ++ > tools/perf/util/thread.c | 39 +++- > tools/perf/util/unwind-libunwind.c | 11 +- > tools/perf/util/unwind.h | 9 +- > tools/perf/util/util.c | 19 +- > 34 files changed, 940 insertions(+), 105 deletions(-) > create mode 100644 tools/build/feature/test-libelf-getshdrstrndx.c Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2015-12-14 17:44 Arnaldo Carvalho de Melo 0 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-12-14 17:44 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Alexei Starovoitov, Andi Kleen, David Ahern, He Kuang, Jiri Olsa, Josh Poimboeuf, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, pi3orama, Wang Nan, Zefan Li, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 0d76ded582c178d3cca55c9112eceb5b0f12f558: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-12-14 09:31:39 +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 7efe0e034c713716060bc7794c7e332589980c70: perf record: Support custom vmlinux path (2015-12-14 13:04:12 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: - Make command line options always available, even when they depend on some feature being enabled, warning the user about use of such options (Wang Nan) - Support --vmlinux in perf record, useful, so far, for eBPF, where we will set up events that will be used in the record session (He Kuang) - Automatically disable collecting branch flags and cycles with --call-graph lbr. This allows avoiding a bunch of extra MSR reads in the PMI on Skylake. (Andi Kleen) Infrastructure: - Dump the stack when a 'perf test -v ' entry segfaults, so far we would have to run it under gdb with 'set follow-fork-mode child' set to get a proper backtrace (Arnaldo Carvalho de Melo) - Initialize the refcnt in 'struct thread' to 1 and fixup its users accordingly, so that we try to have the same refcount model accross the perf codebase (Arnaldo Carvalho de Melo) - More prep work for moving the subcmd infrastructure out of tools/perf/ and into tools/lib/subcmd/ to be used by other tools/ living utilities (Josh Poimboeuf) - Fix 'perf test' hist testcases when kptr_restrict is on (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Andi Kleen (1): perf evsel: Disable branch flags/cycles for --callgraph lbr Arnaldo Carvalho de Melo (3): perf tools: Use same signal handling strategy as 'record' perf test: Dump the stack when test segfaults when in verbose mode perf thread: Fix reference count initial state He Kuang (1): perf record: Support custom vmlinux path Josh Poimboeuf (9): perf build: Remove unnecessary line in Makefile.feature perf test: Add Build file to dependencies for llvm-src-*.c perf test: Remove tarpkg at end of test perf build: Fix 'make clean' perf build: Rename LIB_PATH -> API_PATH perf tools: Create pager.h perf tools: Remove check for unused PERF_PAGER_IN_USE perf tools: Move help_unknown_cmd() to its own file perf tools: Convert parse-options.c internal functions to static Namhyung Kim (1): perf test: Fix hist testcases when kptr_restrict is on Wang Nan (1): perf tools: Make options always available, even if required libs not linked tools/build/Makefile.feature | 1 - tools/perf/Documentation/perf-record.txt | 10 ++- tools/perf/Makefile.perf | 15 ++-- tools/perf/builtin-probe.c | 15 +++- tools/perf/builtin-record.c | 25 +++++- tools/perf/tests/Build | 6 +- tools/perf/tests/builtin-test.c | 3 + tools/perf/tests/hists_common.c | 5 +- tools/perf/tests/make | 3 +- tools/perf/util/Build | 1 + tools/perf/util/cache.h | 5 +- tools/perf/util/evsel.c | 14 +++- tools/perf/util/help-unknown-cmd.c | 103 +++++++++++++++++++++++ tools/perf/util/help-unknown-cmd.h | 0 tools/perf/util/help.c | 107 +----------------------- tools/perf/util/help.h | 3 + tools/perf/util/intel-pt.c | 4 +- tools/perf/util/machine.c | 19 +++-- tools/perf/util/pager.c | 8 +- tools/perf/util/pager.h | 7 ++ tools/perf/util/parse-options.c | 136 +++++++++++++++++++++++++++---- tools/perf/util/parse-options.h | 14 ++-- tools/perf/util/thread.c | 10 ++- tools/perf/util/util.c | 3 +- 24 files changed, 341 insertions(+), 176 deletions(-) create mode 100644 tools/perf/util/help-unknown-cmd.c create mode 100644 tools/perf/util/help-unknown-cmd.h create mode 100644 tools/perf/util/pager.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2015-10-05 21:03 Arnaldo Carvalho de Melo 2015-10-06 7:09 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-10-05 21:03 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, Borislav Petkov, Chandler Carruth, Daniel Bristot de Oliveira, David Ahern, Don Zickus, Fenghua Yu, Frederic Weisbecker, Jiri Olsa, Kanaka Juvva, Kan Liang, Matt Fleming, Namhyung Kim, Peter Zijlstra, Stephane Eranian, Vikas Shivappa, Vince Weaver, Wang Nan, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit e3b0ac1b7a8a590440a2030e7d10d48c59ab8a2a: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-03 08:20:14 +0200) 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 27bf90bf0690f55c3679bcc4c325823cf1cfd19d: perf tools: Fail properly in case pattern matching fails to find tracepoint (2015-10-05 17:59:50 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: - Switch the default callchain output mode to 'graph,0.5,caller', to make it look like the default for other tools, reducing the learning curve for people used to 'caller' based viewing (Arnaldo Carvalho de Melo) - Implement column based horizontal scrolling in the hists browser (top, report), making it possible to use the TUI for things like 'perf mem report' where there are many more columns than can fit in a terminal (Arnaldo Carvalho de Melo) - Support sorting by symbol_iaddr with perf.data files produced by 'perf mem record' (Don Zickus) - Display DATA_SRC sample type bit, i.e. when running 'perf evlist -v' the "DATA_SRC" wasn't appearing when set, fix it to look like: (Jiri Olsa) cpu/mem-loads/pp: ...SNIP... sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|DATA_SRC - Introduce 'P' event modified, meaning 'max precision level, please', i.e.: $ perf record -e cycles:P usleep 1 Is now similar to: $ perf record usleep 1 Useful, for instance, when specifying multiple events (Jiri Olsa) - Make 'perf -v' and 'perf -h' work (Jiri Olsa) - Fail properly when pattern matching fails to find a tracepoint, i.e. '-e non:existent' was being correctly handled, with a proper error message about that not being a valid event, but '-e non:existent*' wasn't, fix it (Jiri Olsa) Infrastructure: - Separate arch specific entries in 'perf test' and add an 'Intel CQM' one to be fun on x86 only (Matt Fleming) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (3): perf callchain: Switch default to 'graph,0.5,caller' perf ui browser: Optional horizontal scrolling key binding perf hists browser: Implement horizontal scrolling Don Zickus (1): perf tools: Add support for sorting on the iaddr Jiri Olsa (9): tools lib api fs: No need to use PATH_MAX + 1 perf evlist: Display DATA_SRC sample type bit perf annotate: Fix sizeof_sym_hist overflow issue perf tools: Export perf_event_attr__set_max_precise_ip() perf tools: Introduce 'P' modifier to request max precision perf tests: Add parsing test for 'P' modifier perf tools: Setup proper width for symbol_iaddr field perf tools: Handle -h and -v options perf tools: Fail properly in case pattern matching fails to find tracepoint Matt Fleming (3): perf tests: Add arch tests perf tests: Move x86 tests into arch directory perf tests: Add Intel CQM test tools/lib/api/fs/fs.c | 2 +- tools/lib/api/fs/tracing_path.c | 6 +- tools/perf/Documentation/perf-list.txt | 1 + tools/perf/Documentation/perf-report.txt | 2 +- tools/perf/Documentation/perf.txt | 8 ++ tools/perf/arch/x86/Build | 2 +- tools/perf/arch/x86/include/arch-tests.h | 19 ++++ tools/perf/arch/x86/tests/Build | 10 +- tools/perf/arch/x86/tests/arch-tests.c | 34 ++++++ tools/perf/arch/x86/tests/dwarf-unwind.c | 1 + .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk | 0 .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh | 0 tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c | 0 tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c | 0 tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c | 0 tools/perf/{ => arch/x86}/tests/insn-x86.c | 3 +- tools/perf/arch/x86/tests/intel-cqm.c | 124 +++++++++++++++++++++ tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c | 4 +- tools/perf/{ => arch/x86}/tests/rdpmc.c | 7 +- tools/perf/builtin-report.c | 4 +- tools/perf/perf.c | 14 +++ tools/perf/tests/Build | 6 - tools/perf/tests/builtin-test.c | 56 ++++------ tools/perf/tests/dwarf-unwind.c | 4 + tools/perf/tests/parse-events.c | 16 +++ tools/perf/tests/tests.h | 10 +- tools/perf/ui/browser.c | 14 +++ tools/perf/ui/browser.h | 2 +- tools/perf/ui/browsers/hists.c | 22 +++- tools/perf/util/annotate.h | 2 +- tools/perf/util/evlist.c | 2 +- tools/perf/util/evlist.h | 2 + tools/perf/util/evsel.c | 5 +- tools/perf/util/evsel.h | 1 + tools/perf/util/hist.c | 13 +++ tools/perf/util/hist.h | 1 + tools/perf/util/parse-events.c | 17 ++- tools/perf/util/parse-events.l | 2 +- tools/perf/util/sort.c | 37 ++++++ tools/perf/util/sort.h | 1 + tools/perf/util/util.c | 4 +- 41 files changed, 381 insertions(+), 77 deletions(-) create mode 100644 tools/perf/arch/x86/include/arch-tests.h create mode 100644 tools/perf/arch/x86/tests/arch-tests.c rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk (100%) rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh (100%) rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c (100%) rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c (100%) rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c (100%) rename tools/perf/{ => arch/x86}/tests/insn-x86.c (98%) create mode 100644 tools/perf/arch/x86/tests/intel-cqm.c rename tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c (98%) rename tools/perf/{ => arch/x86}/tests/rdpmc.c (97%) ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2015-10-05 21:03 Arnaldo Carvalho de Melo @ 2015-10-06 7:09 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2015-10-06 7:09 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Andi Kleen, Borislav Petkov, Chandler Carruth, Daniel Bristot de Oliveira, David Ahern, Don Zickus, Fenghua Yu, Frederic Weisbecker, Jiri Olsa, Kanaka Juvva, Kan Liang, Matt Fleming, Namhyung Kim, Peter Zijlstra, Stephane Eranian, Vikas Shivappa, Vince Weaver, Wang Nan, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit e3b0ac1b7a8a590440a2030e7d10d48c59ab8a2a: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-03 08:20:14 +0200) > > 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 27bf90bf0690f55c3679bcc4c325823cf1cfd19d: > > perf tools: Fail properly in case pattern matching fails to find tracepoint (2015-10-05 17:59:50 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > - Switch the default callchain output mode to 'graph,0.5,caller', to make it > look like the default for other tools, reducing the learning curve for > people used to 'caller' based viewing (Arnaldo Carvalho de Melo) > > - Implement column based horizontal scrolling in the hists browser (top, report), > making it possible to use the TUI for things like 'perf mem report' where > there are many more columns than can fit in a terminal (Arnaldo Carvalho de Melo) > > - Support sorting by symbol_iaddr with perf.data files produced by > 'perf mem record' (Don Zickus) > > - Display DATA_SRC sample type bit, i.e. when running 'perf evlist -v' the > "DATA_SRC" wasn't appearing when set, fix it to look like: (Jiri Olsa) > > cpu/mem-loads/pp: ...SNIP... sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|DATA_SRC > > - Introduce 'P' event modified, meaning 'max precision level, please', i.e.: > > $ perf record -e cycles:P usleep 1 > > Is now similar to: > > $ perf record usleep 1 > > Useful, for instance, when specifying multiple events (Jiri Olsa) > > - Make 'perf -v' and 'perf -h' work (Jiri Olsa) > > - Fail properly when pattern matching fails to find a tracepoint, i.e. > '-e non:existent' was being correctly handled, with a proper error message > about that not being a valid event, but '-e non:existent*' wasn't, > fix it (Jiri Olsa) > > Infrastructure: > > - Separate arch specific entries in 'perf test' and add an 'Intel CQM' one > to be fun on x86 only (Matt Fleming) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (3): > perf callchain: Switch default to 'graph,0.5,caller' > perf ui browser: Optional horizontal scrolling key binding > perf hists browser: Implement horizontal scrolling > > Don Zickus (1): > perf tools: Add support for sorting on the iaddr > > Jiri Olsa (9): > tools lib api fs: No need to use PATH_MAX + 1 > perf evlist: Display DATA_SRC sample type bit > perf annotate: Fix sizeof_sym_hist overflow issue > perf tools: Export perf_event_attr__set_max_precise_ip() > perf tools: Introduce 'P' modifier to request max precision > perf tests: Add parsing test for 'P' modifier > perf tools: Setup proper width for symbol_iaddr field > perf tools: Handle -h and -v options > perf tools: Fail properly in case pattern matching fails to find tracepoint > > Matt Fleming (3): > perf tests: Add arch tests > perf tests: Move x86 tests into arch directory > perf tests: Add Intel CQM test > > tools/lib/api/fs/fs.c | 2 +- > tools/lib/api/fs/tracing_path.c | 6 +- > tools/perf/Documentation/perf-list.txt | 1 + > tools/perf/Documentation/perf-report.txt | 2 +- > tools/perf/Documentation/perf.txt | 8 ++ > tools/perf/arch/x86/Build | 2 +- > tools/perf/arch/x86/include/arch-tests.h | 19 ++++ > tools/perf/arch/x86/tests/Build | 10 +- > tools/perf/arch/x86/tests/arch-tests.c | 34 ++++++ > tools/perf/arch/x86/tests/dwarf-unwind.c | 1 + > .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk | 0 > .../perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh | 0 > tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c | 0 > tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c | 0 > tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c | 0 > tools/perf/{ => arch/x86}/tests/insn-x86.c | 3 +- > tools/perf/arch/x86/tests/intel-cqm.c | 124 +++++++++++++++++++++ > tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c | 4 +- > tools/perf/{ => arch/x86}/tests/rdpmc.c | 7 +- > tools/perf/builtin-report.c | 4 +- > tools/perf/perf.c | 14 +++ > tools/perf/tests/Build | 6 - > tools/perf/tests/builtin-test.c | 56 ++++------ > tools/perf/tests/dwarf-unwind.c | 4 + > tools/perf/tests/parse-events.c | 16 +++ > tools/perf/tests/tests.h | 10 +- > tools/perf/ui/browser.c | 14 +++ > tools/perf/ui/browser.h | 2 +- > tools/perf/ui/browsers/hists.c | 22 +++- > tools/perf/util/annotate.h | 2 +- > tools/perf/util/evlist.c | 2 +- > tools/perf/util/evlist.h | 2 + > tools/perf/util/evsel.c | 5 +- > tools/perf/util/evsel.h | 1 + > tools/perf/util/hist.c | 13 +++ > tools/perf/util/hist.h | 1 + > tools/perf/util/parse-events.c | 17 ++- > tools/perf/util/parse-events.l | 2 +- > tools/perf/util/sort.c | 37 ++++++ > tools/perf/util/sort.h | 1 + > tools/perf/util/util.c | 4 +- > 41 files changed, 381 insertions(+), 77 deletions(-) > create mode 100644 tools/perf/arch/x86/include/arch-tests.h > create mode 100644 tools/perf/arch/x86/tests/arch-tests.c > rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.awk (100%) > rename tools/perf/{ => arch/x86}/tests/gen-insn-x86-dat.sh (100%) > rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-32.c (100%) > rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-64.c (100%) > rename tools/perf/{ => arch/x86}/tests/insn-x86-dat-src.c (100%) > rename tools/perf/{ => arch/x86}/tests/insn-x86.c (98%) > create mode 100644 tools/perf/arch/x86/tests/intel-cqm.c > rename tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c (98%) > rename tools/perf/{ => arch/x86}/tests/rdpmc.c (97%) Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2015-09-30 21:54 Arnaldo Carvalho de Melo 2015-10-01 7:05 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-09-30 21:54 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Borislav Petkov, Chandler Carruth, David Ahern, Dominik Dingel, Frederic Weisbecker, He Kuang, H . Peter Anvin, Jiri Olsa, linuxppc-dev, linux-tip-commits, Masami Hiramatsu, Matt Fleming, Namhyung Kim, Naveen N . Rao, Peter Zijlstra, Raphael Beamonte, Stephane Eranian, Sukadev Bhattiprolu, Thomas Gleixner, Vinson Lee, Wang Nan, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 9c17dbc6eb73bdd8a6aaea1baefd37ff78d86148: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-29 09:43:46 +0200) 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 7f8d1ade1b19f684ed3a7c4fb1dc5d347127b438: perf tools: By default use the most precise "cycles" hw counter available (2015-09-30 18:34:39 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: - By default use the most precise "cycles" hw counter available, i.e. when the user doesn't specify any event, it will try using cycles:ppp, cycles:pp, etc (Arnaldo Carvalho de Melo) - Remove blank lines, headers when piping output in 'perf list', so that it can be sanely used with 'wc -l', etc (Arnaldo Carvalho de Melo) - Amend documentation about max_stack and synthesized callchains (Adrian Hunter) - Fix 'perf probe -l' for probes added to kernel module functions (Masami Hiramatsu) Build fixes: - Fix shadowed declarations that break the build on older distros (Jiri Olsa) - Fix build break on powerpc due to sample_reg_masks (Sukadev Bhattiprolu) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (1): perf report: Amend documentation about max_stack and synthesized callchains Arnaldo Carvalho de Melo (7): perf maps: Introduce maps__find_symbol_by_name() perf machine: Use machine__kernel_map() thoroughly perf machine: Add method for common kernel_map(FUNCTION) operation tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding tools lib symbol: Introduce kallsyms2elf_type perf list: Remove blank lines, headers when piping output perf tools: By default use the most precise "cycles" hw counter available Jiri Olsa (2): tools: Fix shadowed declaration in err.h perf tools: Fix shadowed declaration in parse-events.c Masami Hiramatsu (5): perf probe: Fix to remove dot suffix from second or latter events perf probe: Begin and end libdwfl report session correctly perf probe: Show correct source lines of probes on kmodules perf probe: Fix a segfault bug in debuginfo_cache perf probe: Improve error message when %return is on inlined function Sukadev Bhattiprolu (1): perf tools: Fix build break on powerpc due to sample_reg_masks tools/include/linux/err.h | 4 +- tools/lib/symbol/kallsyms.c | 6 ++ tools/lib/symbol/kallsyms.h | 4 +- tools/perf/Documentation/perf-report.txt | 2 + tools/perf/builtin-kmem.c | 2 +- tools/perf/builtin-list.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/vmlinux-kallsyms.c | 4 +- tools/perf/util/Build | 2 +- tools/perf/util/event.c | 7 +-- tools/perf/util/evlist.c | 22 +++++++- tools/perf/util/intel-pt.c | 2 +- tools/perf/util/machine.c | 26 ++++----- tools/perf/util/machine.h | 8 ++- tools/perf/util/map.c | 21 ++++--- tools/perf/util/map.h | 2 + tools/perf/util/parse-events.c | 53 +++++++++--------- tools/perf/util/perf_regs.c | 2 + tools/perf/util/perf_regs.h | 1 + tools/perf/util/pmu.c | 2 +- tools/perf/util/probe-event.c | 96 ++++++++++++++++++++------------ tools/perf/util/probe-finder.c | 58 +++++++++++++++++-- tools/perf/util/symbol.c | 2 +- 24 files changed, 224 insertions(+), 108 deletions(-) ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2015-09-30 21:54 Arnaldo Carvalho de Melo @ 2015-10-01 7:05 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2015-10-01 7:05 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Borislav Petkov, Chandler Carruth, David Ahern, Dominik Dingel, Frederic Weisbecker, He Kuang, H . Peter Anvin, Jiri Olsa, linuxppc-dev, linux-tip-commits, Masami Hiramatsu, Matt Fleming, Namhyung Kim, Naveen N . Rao, Peter Zijlstra, Raphael Beamonte, Stephane Eranian, Sukadev Bhattiprolu, Thomas Gleixner, Vinson Lee, Wang Nan, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit 9c17dbc6eb73bdd8a6aaea1baefd37ff78d86148: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-09-29 09:43:46 +0200) > > 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 7f8d1ade1b19f684ed3a7c4fb1dc5d347127b438: > > perf tools: By default use the most precise "cycles" hw counter available (2015-09-30 18:34:39 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > - By default use the most precise "cycles" hw counter available, i.e. > when the user doesn't specify any event, it will try using cycles:ppp, > cycles:pp, etc (Arnaldo Carvalho de Melo) That looks really useful! > - Remove blank lines, headers when piping output in 'perf list', so that it can > be sanely used with 'wc -l', etc (Arnaldo Carvalho de Melo) > > - Amend documentation about max_stack and synthesized callchains (Adrian Hunter) > > - Fix 'perf probe -l' for probes added to kernel module functions (Masami Hiramatsu) > > Build fixes: > > - Fix shadowed declarations that break the build on older distros (Jiri Olsa) > > - Fix build break on powerpc due to sample_reg_masks (Sukadev Bhattiprolu) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Adrian Hunter (1): > perf report: Amend documentation about max_stack and synthesized callchains > > Arnaldo Carvalho de Melo (7): > perf maps: Introduce maps__find_symbol_by_name() > perf machine: Use machine__kernel_map() thoroughly > perf machine: Add method for common kernel_map(FUNCTION) operation > tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding > tools lib symbol: Introduce kallsyms2elf_type > perf list: Remove blank lines, headers when piping output > perf tools: By default use the most precise "cycles" hw counter available > > Jiri Olsa (2): > tools: Fix shadowed declaration in err.h > perf tools: Fix shadowed declaration in parse-events.c > > Masami Hiramatsu (5): > perf probe: Fix to remove dot suffix from second or latter events > perf probe: Begin and end libdwfl report session correctly > perf probe: Show correct source lines of probes on kmodules > perf probe: Fix a segfault bug in debuginfo_cache > perf probe: Improve error message when %return is on inlined function > > Sukadev Bhattiprolu (1): > perf tools: Fix build break on powerpc due to sample_reg_masks > > tools/include/linux/err.h | 4 +- > tools/lib/symbol/kallsyms.c | 6 ++ > tools/lib/symbol/kallsyms.h | 4 +- > tools/perf/Documentation/perf-report.txt | 2 + > tools/perf/builtin-kmem.c | 2 +- > tools/perf/builtin-list.c | 2 +- > tools/perf/builtin-report.c | 2 +- > tools/perf/tests/code-reading.c | 2 +- > tools/perf/tests/vmlinux-kallsyms.c | 4 +- > tools/perf/util/Build | 2 +- > tools/perf/util/event.c | 7 +-- > tools/perf/util/evlist.c | 22 +++++++- > tools/perf/util/intel-pt.c | 2 +- > tools/perf/util/machine.c | 26 ++++----- > tools/perf/util/machine.h | 8 ++- > tools/perf/util/map.c | 21 ++++--- > tools/perf/util/map.h | 2 + > tools/perf/util/parse-events.c | 53 +++++++++--------- > tools/perf/util/perf_regs.c | 2 + > tools/perf/util/perf_regs.h | 1 + > tools/perf/util/pmu.c | 2 +- > tools/perf/util/probe-event.c | 96 ++++++++++++++++++++------------ > tools/perf/util/probe-finder.c | 58 +++++++++++++++++-- > tools/perf/util/symbol.c | 2 +- > 24 files changed, 224 insertions(+), 108 deletions(-) Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2015-08-25 16:14 Arnaldo Carvalho de Melo 2015-08-26 13:39 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-08-25 16:14 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa, Masami Hiramatsu, Namhyung Kim, pi3orama, Stephane Eranian, Wang Nan, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, now to get back looking at eBPF :-) - Arnaldo The following changes since commit 0e53909a1cf0153736fb52c216558a65530d8c40: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-22 08:45:46 +0200) 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 1cbebfc7abb549ed3f4080e12c4d7b07d1f16637: perf probe: Support probing at absolute addresses (2015-08-25 12:36:22 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: - Add support for using several Intel PT features (CYC, MTC packets), the relevant documentation was updated: tools/perf/Documentation/intel-pt.txt, briefly describing those packets, its purposes, how to configure them in the event config terms and relevant external documentation for further reading. (Adrian Hunter) - Introduce support for probing at an absolut address, for user and kernel 'perf probe's, useful when one have the symbol maps on a developer machine but not on an embedded system (Wang Nan) - Clear the progress bar at the end of a ordered_events flush, fixing an UI artifact when, after ordering the events the screen doesn't get completely redraw, for instance, when an error window covers just the center of the screen and waits for user input. (Arnaldo Carvalho de Melo) - Fix 'annotate' segfault by resetting the dso find_symbol cache when removing symbols (Arnaldo Carvalho de Melo) Infrastructure: - Fix Intel PT 'instructions' sample period (Adrian Hunter) - Prevent segfault when reading probe point with absolute address (Wang Nan) Build fixes: - Fix tarball build broken by pt/bts (Adrian Hunter) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (11): perf tools: Fix tarball build broken by pt/bts perf tools: Fix Intel PT 'instructions' sample period perf tools: Add Intel PT support for PSB periods perf tools: Add new Intel PT packet definitions perf tools: Pass Intel PT information for decoding MTC and CYC perf tools: Add Intel PT support for decoding MTC packets perf tools: Add Intel PT support for using MTC packets perf tools: Add Intel PT support for decoding CYC packets perf tools: Add Intel PT support for using CYC packets perf tools: Add Intel PT support for decoding TRACESTOP packets perf tools: Update Intel PT documentation Arnaldo Carvalho de Melo (3): perf annotate: Reset the dso find_symbol cache when removing symbols perf ui tui progress: Implement the ui_progress_ops->finish() method perf ordered_events: Clear the progress bar at the end of a flush Wang Nan (2): perf probe: Prevent segfault when reading probe point with absolute address perf probe: Support probing at absolute addresses tools/perf/Documentation/intel-pt.txt | 194 ++++++- tools/perf/arch/x86/util/intel-pt.c | 271 +++++++++- tools/perf/builtin-annotate.c | 1 + tools/perf/ui/tui/progress.c | 19 +- tools/perf/util/dso.h | 2 + tools/perf/util/intel-pt-decoder/inat.c | 2 +- tools/perf/util/intel-pt-decoder/inat.h | 2 +- tools/perf/util/intel-pt-decoder/inat_types.h | 29 ++ tools/perf/util/intel-pt-decoder/insn.c | 4 +- tools/perf/util/intel-pt-decoder/insn.h | 2 +- .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 555 ++++++++++++++++++++- .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 5 + .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +- .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 142 +++++- .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 6 + tools/perf/util/intel-pt.c | 67 ++- tools/perf/util/intel-pt.h | 5 + tools/perf/util/ordered-events.c | 3 + tools/perf/util/probe-event.c | 152 +++++- tools/perf/util/probe-event.h | 3 + tools/perf/util/probe-finder.c | 21 +- tools/perf/util/symbol.c | 10 + 22 files changed, 1404 insertions(+), 93 deletions(-) create mode 100644 tools/perf/util/intel-pt-decoder/inat_types.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2015-08-25 16:14 Arnaldo Carvalho de Melo @ 2015-08-26 13:39 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-08-26 13:39 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Adrian Hunter, Borislav Petkov, David Ahern, Frederic Weisbecker, Jiri Olsa, Masami Hiramatsu, Namhyung Kim, pi3orama, Stephane Eranian, Wang Nan Em Tue, Aug 25, 2015 at 01:14:22PM -0300, Arnaldo Carvalho de Melo escreveu: > Hi Ingo, > > Please consider pulling, now to get back looking at eBPF :-) Ingo, please do not process this one, there was a NAK from Masami to some new syntax on adding non symbolic probes, will resubmit with the new patches provided by Wang Nan that already got Masami's approval. - Arnaldo > - Arnaldo > > The following changes since commit 0e53909a1cf0153736fb52c216558a65530d8c40: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-22 08:45:46 +0200) > > 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 1cbebfc7abb549ed3f4080e12c4d7b07d1f16637: > > perf probe: Support probing at absolute addresses (2015-08-25 12:36:22 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > - Add support for using several Intel PT features (CYC, MTC packets), the > relevant documentation was updated: tools/perf/Documentation/intel-pt.txt, > briefly describing those packets, its purposes, how to configure them in > the event config terms and relevant external documentation for further > reading. (Adrian Hunter) > > - Introduce support for probing at an absolut address, for user and kernel > 'perf probe's, useful when one have the symbol maps on a developer machine > but not on an embedded system (Wang Nan) > > - Clear the progress bar at the end of a ordered_events flush, fixing > an UI artifact when, after ordering the events the screen doesn't get > completely redraw, for instance, when an error window covers just the > center of the screen and waits for user input. (Arnaldo Carvalho de Melo) > > - Fix 'annotate' segfault by resetting the dso find_symbol cache when removing > symbols (Arnaldo Carvalho de Melo) > > Infrastructure: > > - Fix Intel PT 'instructions' sample period (Adrian Hunter) > > - Prevent segfault when reading probe point with absolute address (Wang Nan) > > Build fixes: > > - Fix tarball build broken by pt/bts (Adrian Hunter) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Adrian Hunter (11): > perf tools: Fix tarball build broken by pt/bts > perf tools: Fix Intel PT 'instructions' sample period > perf tools: Add Intel PT support for PSB periods > perf tools: Add new Intel PT packet definitions > perf tools: Pass Intel PT information for decoding MTC and CYC > perf tools: Add Intel PT support for decoding MTC packets > perf tools: Add Intel PT support for using MTC packets > perf tools: Add Intel PT support for decoding CYC packets > perf tools: Add Intel PT support for using CYC packets > perf tools: Add Intel PT support for decoding TRACESTOP packets > perf tools: Update Intel PT documentation > > Arnaldo Carvalho de Melo (3): > perf annotate: Reset the dso find_symbol cache when removing symbols > perf ui tui progress: Implement the ui_progress_ops->finish() method > perf ordered_events: Clear the progress bar at the end of a flush > > Wang Nan (2): > perf probe: Prevent segfault when reading probe point with absolute address > perf probe: Support probing at absolute addresses > > tools/perf/Documentation/intel-pt.txt | 194 ++++++- > tools/perf/arch/x86/util/intel-pt.c | 271 +++++++++- > tools/perf/builtin-annotate.c | 1 + > tools/perf/ui/tui/progress.c | 19 +- > tools/perf/util/dso.h | 2 + > tools/perf/util/intel-pt-decoder/inat.c | 2 +- > tools/perf/util/intel-pt-decoder/inat.h | 2 +- > tools/perf/util/intel-pt-decoder/inat_types.h | 29 ++ > tools/perf/util/intel-pt-decoder/insn.c | 4 +- > tools/perf/util/intel-pt-decoder/insn.h | 2 +- > .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 555 ++++++++++++++++++++- > .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 5 + > .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +- > .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 142 +++++- > .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 6 + > tools/perf/util/intel-pt.c | 67 ++- > tools/perf/util/intel-pt.h | 5 + > tools/perf/util/ordered-events.c | 3 + > tools/perf/util/probe-event.c | 152 +++++- > tools/perf/util/probe-event.h | 3 + > tools/perf/util/probe-finder.c | 21 +- > tools/perf/util/symbol.c | 10 + > 22 files changed, 1404 insertions(+), 93 deletions(-) > create mode 100644 tools/perf/util/intel-pt-decoder/inat_types.h > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2015-04-07 16:40 Arnaldo Carvalho de Melo 0 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-04-07 16:40 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andrew Morton, Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker, He Kuang, H. Peter Anvin, Jiri Olsa, John Stultz, Joonsoo Kim, Linus Torvalds, linux-mm, Minchan Kim, Namhyung Kim, Paul Mackerras, Peter Zijlstra, pi3orama, Stephane Eranian, Steven Rostedt, Thomas Gleixner, Wang Nan, Yunlong Song, Zefan Li, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 6645f3187f5beb64f7a40515cfa18f3889264ece: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-04-03 07:00:02 +0200) 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 d083e5ff09eccc0afd44e02ec85f10c06271e93b: perf tools: Merge all perf_event_attr print functions (2015-04-07 13:25:05 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: - Teach about perf_event_attr.clockid to 'perf record' (Peter Zijlstra) - perf sched replay improvements for high CPU core count machines (Yunlong Song) - Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT events (Arnaldo Carvalho de Melo) - Respect -i option 'in perf kmem' (Jiri Olsa) Infrastructure: - Honor operator priority in libtraceevent (Namhyung Kim) - Merge all perf_event_attr print functions (Peter Zijlstra) - Check kmaps access to make code more robust (Wang Nan) - Fix inverted logic in perf_mmap__empty() (He Kuang) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (1): perf top: Consider PERF_RECORD_ events with cpumode == 0 He Kuang (1): perf evlist: Fix inverted logic in perf_mmap__empty Jiri Olsa (1): perf kmem: Respect -i option Namhyung Kim (1): tools lib traceevent: Honor operator priority Peter Zijlstra (2): perf record: Add clockid parameter perf tools: Merge all perf_event_attr print functions Wang Nan (1): perf kmaps: Check kmaps to make code more robust Yunlong Song (9): perf sched replay: Use struct task_desc instead of struct task_task for correct meaning perf sched replay: Increase the MAX_PID value to fix assertion failure problem perf sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations perf sched replay: Fix the segmentation fault problem caused by pr_err in threads perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files perf sched replay: Support using -f to override perf.data file ownership perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10 tools/lib/traceevent/event-parse.c | 17 +- tools/perf/Documentation/perf-record.txt | 7 + tools/perf/builtin-kmem.c | 3 +- tools/perf/builtin-record.c | 80 ++++++++ tools/perf/builtin-sched.c | 67 +++++-- tools/perf/builtin-top.c | 8 +- tools/perf/perf.h | 2 + tools/perf/util/evlist.c | 2 +- tools/perf/util/evsel.c | 325 ++++++++++++++++--------------- tools/perf/util/evsel.h | 6 + tools/perf/util/header.c | 28 +-- tools/perf/util/machine.c | 5 +- tools/perf/util/map.c | 20 ++ tools/perf/util/map.h | 6 +- tools/perf/util/probe-event.c | 2 + tools/perf/util/session.c | 3 + tools/perf/util/symbol-elf.c | 16 +- tools/perf/util/symbol.c | 34 +++- 18 files changed, 422 insertions(+), 209 deletions(-) ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2014-11-19 16:03 Arnaldo Carvalho de Melo 2014-11-20 7:33 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-11-19 16:03 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, Aravinda Prasad, Borislav Petkov, Brendan Gregg, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Hemant Kumar, Jean Pihet, Jiri Olsa, Kan Liang, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Oleg Nesterov, Paul Mackerras, Pekka Enberg, Peter Zijlstra, Srikar Dronamraju, Stephane Eranian, Steven Rostedt, systemtap, Vasant Hegde, WANG Chao, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 2565711fb7d7c28e0cd93c8971b520d1b10b857c: perf: Improve the perf_sample_data struct layout (2014-11-16 11:42:04 +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 a84808083688d82d7f1e5786ccf5df0ff7d448cb: perf tools: Only override the default :tid comm entry (2014-11-19 12:37:26 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible fixes: - Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo Carvalho de Melo) - Fix annotation with kcore (Adrian Hunter) - Fix up srcline histogram key formatting (Arnaldo Carvalho de Melo) - Add missing handler for PERF_RECORD_MMAP2 events in 'perf diff' (Kan Liang) User visible changes/new features: - Only print base source file for srcline histogram sort key (Andi Kleen) - Support source line numbers in annotate using a hotkey (Andi Kleen) Infrastructure: - Do not poll events that use the system_wide flag (Adrian Hunter) - Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore (Adrian Hunter) perf tools: Only override the default :tid comm entry (Adrian Hunter) - Factor out adding new call chain entries (Andi Kleen) - Use al.addr to set up call chain (Andi Kleen) - Use a common function to resolve symbol or name (Andi Kleen) - Fix ftrace:function event recording (Jiri Olsa) - Move disable_buildid_cache() to util/build-id.c (Namhyung Kim) - Clean up libelf feature support code (Namhyung Kim) - fix typo in python 'perf test' (WANG Chao) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (4): perf tools: Fix annotation with kcore perf evlist: Do not poll events that use the system_wide flag perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore perf tools: Only override the default :tid comm entry Andi Kleen (5): perf callchain: Factor out adding new call chain entries perf callchain: Use al.addr to set up call chain perf callchain: Use a common function to resolve symbol or name perf tools: Only print base source file for srcline perf annotate: Support source line numbers in annotate Arnaldo Carvalho de Melo (2): perf symbols: Fallback to kallsyms when using the minimal 'ELF' loader perf hists: Fix up srcline histogram key formatting Jiri Olsa (1): perf evsel: Fix ftrace:function event recording Kan Liang (1): perf diff: Add missing handler for PERF_RECORD_MMAP2 events Namhyung Kim (2): perf build-id: Move disable_buildid_cache() to util/build-id.c perf tools: Clean up libelf feature support code WANG Chao (1): perf test: fix typo in python test tools/perf/.gitignore | 2 ++ tools/perf/Makefile.perf | 2 -- tools/perf/builtin-diff.c | 1 + tools/perf/config/Makefile | 5 ++-- tools/perf/tests/builtin-test.c | 2 +- tools/perf/ui/browsers/annotate.c | 13 +++++++++- tools/perf/ui/browsers/hists.c | 17 ------------- tools/perf/ui/gtk/hists.c | 11 +-------- tools/perf/ui/stdio/hist.c | 23 +++++++----------- tools/perf/util/annotate.c | 32 ++++++++++++++++++++---- tools/perf/util/annotate.h | 1 + tools/perf/util/build-id.c | 11 +++++++++ tools/perf/util/build-id.h | 1 + tools/perf/util/callchain.c | 19 +++++++++++++++ tools/perf/util/callchain.h | 3 +++ tools/perf/util/evlist.c | 10 +++++++- tools/perf/util/evsel.c | 8 ++++++ tools/perf/util/header.c | 10 +------- tools/perf/util/machine.c | 51 ++++++++++++++++++++++++--------------- tools/perf/util/sort.c | 2 +- tools/perf/util/srcline.c | 2 +- tools/perf/util/symbol-minimal.c | 1 - tools/perf/util/thread.c | 5 ++-- tools/perf/util/util.h | 1 - 24 files changed, 145 insertions(+), 88 deletions(-) ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2014-11-19 16:03 Arnaldo Carvalho de Melo @ 2014-11-20 7:33 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2014-11-20 7:33 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Andi Kleen, Aravinda Prasad, Borislav Petkov, Brendan Gregg, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Hemant Kumar, Jean Pihet, Jiri Olsa, Kan Liang, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Oleg Nesterov, Paul Mackerras, Pekka Enberg, Peter Zijlstra, Srikar Dronamraju, Stephane Eranian, Steven Rostedt, systemtap, Vasant Hegde, WANG Chao, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit 2565711fb7d7c28e0cd93c8971b520d1b10b857c: > > perf: Improve the perf_sample_data struct layout (2014-11-16 11:42:04 +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 a84808083688d82d7f1e5786ccf5df0ff7d448cb: > > perf tools: Only override the default :tid comm entry (2014-11-19 12:37:26 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible fixes: > > - Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo Carvalho de Melo) > > - Fix annotation with kcore (Adrian Hunter) > > - Fix up srcline histogram key formatting (Arnaldo Carvalho de Melo) > > - Add missing handler for PERF_RECORD_MMAP2 events in 'perf diff' (Kan Liang) > > User visible changes/new features: > > - Only print base source file for srcline histogram sort key (Andi Kleen) > > - Support source line numbers in annotate using a hotkey (Andi Kleen) > > Infrastructure: > > - Do not poll events that use the system_wide flag (Adrian Hunter) > > - Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore (Adrian Hunter) > > perf tools: Only override the default :tid comm entry (Adrian Hunter) > > - Factor out adding new call chain entries (Andi Kleen) > > - Use al.addr to set up call chain (Andi Kleen) > > - Use a common function to resolve symbol or name (Andi Kleen) > > - Fix ftrace:function event recording (Jiri Olsa) > > - Move disable_buildid_cache() to util/build-id.c (Namhyung Kim) > > - Clean up libelf feature support code (Namhyung Kim) > > - fix typo in python 'perf test' (WANG Chao) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Adrian Hunter (4): > perf tools: Fix annotation with kcore > perf evlist: Do not poll events that use the system_wide flag > perf tools: Add perf-read-vdso32 and perf-read-vdsox32 to .gitignore > perf tools: Only override the default :tid comm entry > > Andi Kleen (5): > perf callchain: Factor out adding new call chain entries > perf callchain: Use al.addr to set up call chain > perf callchain: Use a common function to resolve symbol or name > perf tools: Only print base source file for srcline > perf annotate: Support source line numbers in annotate > > Arnaldo Carvalho de Melo (2): > perf symbols: Fallback to kallsyms when using the minimal 'ELF' loader > perf hists: Fix up srcline histogram key formatting > > Jiri Olsa (1): > perf evsel: Fix ftrace:function event recording > > Kan Liang (1): > perf diff: Add missing handler for PERF_RECORD_MMAP2 events > > Namhyung Kim (2): > perf build-id: Move disable_buildid_cache() to util/build-id.c > perf tools: Clean up libelf feature support code > > WANG Chao (1): > perf test: fix typo in python test > > tools/perf/.gitignore | 2 ++ > tools/perf/Makefile.perf | 2 -- > tools/perf/builtin-diff.c | 1 + > tools/perf/config/Makefile | 5 ++-- > tools/perf/tests/builtin-test.c | 2 +- > tools/perf/ui/browsers/annotate.c | 13 +++++++++- > tools/perf/ui/browsers/hists.c | 17 ------------- > tools/perf/ui/gtk/hists.c | 11 +-------- > tools/perf/ui/stdio/hist.c | 23 +++++++----------- > tools/perf/util/annotate.c | 32 ++++++++++++++++++++---- > tools/perf/util/annotate.h | 1 + > tools/perf/util/build-id.c | 11 +++++++++ > tools/perf/util/build-id.h | 1 + > tools/perf/util/callchain.c | 19 +++++++++++++++ > tools/perf/util/callchain.h | 3 +++ > tools/perf/util/evlist.c | 10 +++++++- > tools/perf/util/evsel.c | 8 ++++++ > tools/perf/util/header.c | 10 +------- > tools/perf/util/machine.c | 51 ++++++++++++++++++++++++--------------- > tools/perf/util/sort.c | 2 +- > tools/perf/util/srcline.c | 2 +- > tools/perf/util/symbol-minimal.c | 1 - > tools/perf/util/thread.c | 5 ++-- > tools/perf/util/util.h | 1 - > 24 files changed, 145 insertions(+), 88 deletions(-) Pulled into tip:perf/core, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2014-08-22 16:29 Arnaldo Carvalho de Melo 2014-08-24 10:11 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-08-22 16:29 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet, Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit af924aa35129edf338ebc8da6a4eae08cf7cb297: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-08-18 10:14:43 +0200) 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 141da74d2eff8de134c5a5ffaf2800a8a1b27517: perf hists browser: Consolidate callchain print functions in TUI (2014-08-22 13:12:15 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: o Don't try to find DSOs in SYSV maps (Don Zickus) o Fallback to MAP__FUNCTION if daddr maps are NULL, i.e. addresses get looked upon more maps (Don Zickus) o Kernel fix to properly handle exited tasks, by returning POLLHUP values on perf event file descriptors. Tooling changes will come next, but were tested with this kernel fix. (Jiri Olsa) o Add +field argument support for --field option, so that one can add fields to the default list of fields to show, i.e. now one can just do: perf report --fields +pid And the pid will appear in addition to the default fields. (Jiri Olsa) Developer stuff: o More Intel PT prep stuff, including: - Add a 'perf test' for tracking with sched_switch - Add 'flush' callback to scripting API o hists browser (used in top and report) refactorings, getting rid of unused variables and reducing source code size by handling similar cases in a fewer functions (Namhyung Kim). o Explicitly include util/debug.h for powerpc, was being indirectly included, broke the build when some change made it stop being included. (Sukadev Bhattiprolu) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (4): perf tests: Add a test for tracking with sched_switch perf scripting: Add 'flush' callback to scripting API perf machine: Rename machine__get_kernel_start_addr() method perf tools: Add machine__kernel_ip() Don Zickus (2): perf symbols: Don't try to find DSOs in SYSV maps perf machine: Fallback to MAP__FUNCTION if daddr maps are NULL Jiri Olsa (4): perf: Fix perf_poll to return proper POLLHUP value perf: Add PERF_EVENT_STATE_EXIT state for events with exited task perf top: Use set_term_quiet() instead of open coded equivalent perf tools: Add +field argument support for --field option Namhyung Kim (5): perf hists browser: Get rid of unused 'remaining' variable perf hists browser: Fix children overhead dump perf hists browser: Factor out hist_browser__show_callchain_entry() perf hists browser: Cleanup callchain print functions perf hists browser: Consolidate callchain print functions in TUI Sukadev Bhattiprolu (1): perf tools powerpc: Explicitly include util/debug.h include/linux/perf_event.h | 1 + kernel/events/core.c | 12 +- tools/perf/Makefile.perf | 1 + tools/perf/arch/powerpc/util/skip-callchain-idx.c | 1 + tools/perf/builtin-script.c | 13 + tools/perf/builtin-top.c | 9 +- tools/perf/tests/builtin-test.c | 4 + tools/perf/tests/switch-tracking.c | 572 +++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/ui/browsers/hists.c | 343 +++++------- tools/perf/ui/hist.c | 6 +- tools/perf/util/event.c | 6 +- tools/perf/util/machine.c | 41 +- tools/perf/util/machine.h | 17 + tools/perf/util/map.c | 1 + .../perf/util/scripting-engines/trace-event-perl.c | 6 + .../util/scripting-engines/trace-event-python.c | 6 + tools/perf/util/sort.c | 24 +- tools/perf/util/sort.h | 1 + tools/perf/util/trace-event-scripting.c | 7 + tools/perf/util/trace-event.h | 1 + 21 files changed, 827 insertions(+), 246 deletions(-) create mode 100644 tools/perf/tests/switch-tracking.c ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2014-08-22 16:29 Arnaldo Carvalho de Melo @ 2014-08-24 10:11 ` Ingo Molnar 2014-08-24 11:16 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 56+ messages in thread From: Ingo Molnar @ 2014-08-24 10:11 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet, Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit af924aa35129edf338ebc8da6a4eae08cf7cb297: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-08-18 10:14:43 +0200) > > 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 141da74d2eff8de134c5a5ffaf2800a8a1b27517: > > perf hists browser: Consolidate callchain print functions in TUI (2014-08-22 13:12:15 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > o Don't try to find DSOs in SYSV maps (Don Zickus) > > o Fallback to MAP__FUNCTION if daddr maps are NULL, > i.e. addresses get looked upon more maps (Don Zickus) > > o Kernel fix to properly handle exited tasks, by returning POLLHUP values > on perf event file descriptors. Tooling changes will come next, but were > tested with this kernel fix. (Jiri Olsa) So the signoffs are really weird (and invalid) here: commit ce1d77c667e40631d6673717e65e72f72265bf10 Author: Jiri Olsa <jolsa@kernel.org> Date: Fri Aug 15 16:24:45 2014 -0300 perf top: Use set_term_quiet() instead of open coded equivalent ... Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org [ Yanked this out of a patch containing this and some other change ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong? Thanks, Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2014-08-24 10:11 ` Ingo Molnar @ 2014-08-24 11:16 ` Arnaldo Carvalho de Melo 2014-08-24 14:47 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-08-24 11:16 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet, Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu Em Sun, Aug 24, 2014 at 12:11:24PM +0200, Ingo Molnar escreveu: > * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > o Kernel fix to properly handle exited tasks, by returning POLLHUP values > > on perf event file descriptors. Tooling changes will come next, but were > > tested with this kernel fix. (Jiri Olsa) > So the signoffs are really weird (and invalid) here: > commit ce1d77c667e40631d6673717e65e72f72265bf10 > Author: Jiri Olsa <jolsa@kernel.org> > Date: Fri Aug 15 16:24:45 2014 -0300 > perf top: Use set_term_quiet() instead of open coded equivalent > ... > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Paul Mackerras <paulus@samba.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org > [ Yanked this out of a patch containing this and some other change ] > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong? Should be ok now, I recreated the perf-core-for-mingo signed tag, please let me know if there are still any problems, Thanks! - Arnaldo ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2014-08-24 11:16 ` Arnaldo Carvalho de Melo @ 2014-08-24 14:47 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2014-08-24 14:47 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Adrian Hunter, Andi Kleen, Corey Ashford, David Ahern, Don Zickus, Frederic Weisbecker, Jean Pihet, Jiri Olsa, Joe Mario, Michael Ellerman, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Em Sun, Aug 24, 2014 at 12:11:24PM +0200, Ingo Molnar escreveu: > > * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > > o Kernel fix to properly handle exited tasks, by returning POLLHUP values > > > on perf event file descriptors. Tooling changes will come next, but were > > > tested with this kernel fix. (Jiri Olsa) > > > So the signoffs are really weird (and invalid) here: > > > commit ce1d77c667e40631d6673717e65e72f72265bf10 > > Author: Jiri Olsa <jolsa@kernel.org> > > Date: Fri Aug 15 16:24:45 2014 -0300 > > > perf top: Use set_term_quiet() instead of open coded equivalent > > > ... > > Cc: Jiri Olsa <jolsa@kernel.org> > > Cc: Namhyung Kim <namhyung@kernel.org> > > Cc: Paul Mackerras <paulus@samba.org> > > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > > Link: http://lkml.kernel.org/n/tip-h7n9te70flmaqfnj6l06ay6r@git.kernel.org > > [ Yanked this out of a patch containing this and some other change ] > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > > and in 7713886adc15 and f017bf0a8d92 - results of a rebase gone wrong? > > Should be ok now, I recreated the perf-core-for-mingo signed tag, please > let me know if there are still any problems, Looks good now. Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2014-03-14 21:29 Arnaldo Carvalho de Melo 2014-03-18 8:24 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-03-14 21:29 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, Aswin Chandramouleeswaran, Corey Ashford, Darren Hart, David Ahern, Davidlohr Bueso, Don Zickus, Frederic Weisbecker, Jason Low, Jiri Olsa, Joe Mario, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras, Pekka Enberg, Peter Zijlstra, Ramkumar Ramachandra, Scott J Norton, Stephane Eranian, Thomas Gleixner, Waiman Long, Arnaldo Carvalho de Melo From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 81827ed8d85e892311965dc9ec4120b2b2e745bd: perf/x86/uncore: Fix missing end markers for SNB/IVB/HSW IMC PMU (2014-03-14 09:25:25 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo for you to fetch changes up to d75e6097ef1f7669deb500fbbdf53cfe524f1b53: perf machine: Factor machine__find_thread to take tid argument (2014-03-14 18:08:42 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: User visible: . Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso) . Speed up thread map generation (Don Zickus) . Fix synthesizing mmaps for threads (Don Zickus) . Fix invalid output on event group stdio report (Namhyung Kim) . Introduce 'perf kvm --list-cmds' command line option for use by scripts (Ramkumar Ramachandra) Documentation: . Clarify load-latency information in the 'perf mem' docs (Andi Kleen) . Clarify x86 register naming in 'perf probe' docs (Andi Kleen) Refactorigns: . hists browser refactorings to reuse code accross UIs (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Andi Kleen (2): perf mem: Clarify load-latency in documentation perf probe: Clarify x86 register naming for perf probe Arnaldo Carvalho de Melo (1): perf symbols: Introduce thread__find_cpumode_addr_location Davidlohr Bueso (3): perf bench: Add futex-hash microbenchmark perf bench: Add futex-wake microbenchmark perf bench: Add futex-requeue microbenchmark Don Zickus (3): perf tools: Fix synthesizing mmaps for threads perf session: Change header.misc dump from decimal to hex perf tools: Speed up thread map generation Jiri Olsa (1): perf machine: Factor machine__find_thread to take tid argument Namhyung Kim (5): perf ui/stdio: Fix invalid output on event group report perf ui/gtk: Reuse generic __hpp__fmt() code perf ui/hists: Pass struct hpp to print functions perf ui/tui: Reuse generic __hpp__fmt() code perf ui hists: Pass evsel to hpp->header/width functions explicitly Ramkumar Ramachandra (1): perf kvm: introduce --list-cmds for use by scripts tools/perf/Documentation/perf-mem.txt | 4 + tools/perf/Documentation/perf-probe.txt | 2 + tools/perf/Makefile.perf | 3 + tools/perf/bench/bench.h | 3 + tools/perf/bench/futex-hash.c | 212 ++++++++++++++++++++++++++++++++ tools/perf/bench/futex-requeue.c | 211 +++++++++++++++++++++++++++++++ tools/perf/bench/futex-wake.c | 201 ++++++++++++++++++++++++++++++ tools/perf/bench/futex.h | 71 +++++++++++ tools/perf/builtin-bench.c | 12 +- tools/perf/builtin-diff.c | 7 +- tools/perf/builtin-kvm.c | 12 +- tools/perf/perf-completion.sh | 2 +- tools/perf/perf.h | 6 + tools/perf/tests/dwarf-unwind.c | 2 +- tools/perf/ui/browsers/hists.c | 122 ++++++------------ tools/perf/ui/gtk/hists.c | 78 ++---------- tools/perf/ui/hist.c | 138 +++++++++++++++------ tools/perf/ui/stdio/hist.c | 11 +- tools/perf/util/event.c | 156 ++++++++++++++--------- tools/perf/util/hist.h | 20 ++- tools/perf/util/machine.c | 46 +++---- tools/perf/util/machine.h | 3 +- tools/perf/util/parse-options.c | 37 +++++- tools/perf/util/parse-options.h | 8 +- tools/perf/util/session.c | 2 +- tools/perf/util/thread.c | 21 ++++ tools/perf/util/thread.h | 5 + 27 files changed, 1094 insertions(+), 301 deletions(-) create mode 100644 tools/perf/bench/futex-hash.c create mode 100644 tools/perf/bench/futex-requeue.c create mode 100644 tools/perf/bench/futex-wake.c create mode 100644 tools/perf/bench/futex.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2014-03-14 21:29 Arnaldo Carvalho de Melo @ 2014-03-18 8:24 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2014-03-18 8:24 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, Aswin Chandramouleeswaran, Corey Ashford, Darren Hart, David Ahern, Davidlohr Bueso, Don Zickus, Frederic Weisbecker, Jason Low, Jiri Olsa, Joe Mario, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras, Pekka Enberg, Peter Zijlstra, Ramkumar Ramachandra, Scott J Norton, Stephane Eranian, Thomas Gleixner, Waiman Long, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> > > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit 81827ed8d85e892311965dc9ec4120b2b2e745bd: > > perf/x86/uncore: Fix missing end markers for SNB/IVB/HSW IMC PMU (2014-03-14 09:25:25 +0100) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo > > for you to fetch changes up to d75e6097ef1f7669deb500fbbdf53cfe524f1b53: > > perf machine: Factor machine__find_thread to take tid argument (2014-03-14 18:08:42 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > . Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso) > > . Speed up thread map generation (Don Zickus) > > . Fix synthesizing mmaps for threads (Don Zickus) > > . Fix invalid output on event group stdio report (Namhyung Kim) > > . Introduce 'perf kvm --list-cmds' command line option for use by > scripts (Ramkumar Ramachandra) > > Documentation: > > . Clarify load-latency information in the 'perf mem' docs (Andi Kleen) > > . Clarify x86 register naming in 'perf probe' docs (Andi Kleen) > > Refactorigns: > > . hists browser refactorings to reuse code accross UIs (Namhyung Kim) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Andi Kleen (2): > perf mem: Clarify load-latency in documentation > perf probe: Clarify x86 register naming for perf probe > > Arnaldo Carvalho de Melo (1): > perf symbols: Introduce thread__find_cpumode_addr_location > > Davidlohr Bueso (3): > perf bench: Add futex-hash microbenchmark > perf bench: Add futex-wake microbenchmark > perf bench: Add futex-requeue microbenchmark > > Don Zickus (3): > perf tools: Fix synthesizing mmaps for threads > perf session: Change header.misc dump from decimal to hex > perf tools: Speed up thread map generation > > Jiri Olsa (1): > perf machine: Factor machine__find_thread to take tid argument > > Namhyung Kim (5): > perf ui/stdio: Fix invalid output on event group report > perf ui/gtk: Reuse generic __hpp__fmt() code > perf ui/hists: Pass struct hpp to print functions > perf ui/tui: Reuse generic __hpp__fmt() code > perf ui hists: Pass evsel to hpp->header/width functions explicitly > > Ramkumar Ramachandra (1): > perf kvm: introduce --list-cmds for use by scripts > > tools/perf/Documentation/perf-mem.txt | 4 + > tools/perf/Documentation/perf-probe.txt | 2 + > tools/perf/Makefile.perf | 3 + > tools/perf/bench/bench.h | 3 + > tools/perf/bench/futex-hash.c | 212 ++++++++++++++++++++++++++++++++ > tools/perf/bench/futex-requeue.c | 211 +++++++++++++++++++++++++++++++ > tools/perf/bench/futex-wake.c | 201 ++++++++++++++++++++++++++++++ > tools/perf/bench/futex.h | 71 +++++++++++ > tools/perf/builtin-bench.c | 12 +- > tools/perf/builtin-diff.c | 7 +- > tools/perf/builtin-kvm.c | 12 +- > tools/perf/perf-completion.sh | 2 +- > tools/perf/perf.h | 6 + > tools/perf/tests/dwarf-unwind.c | 2 +- > tools/perf/ui/browsers/hists.c | 122 ++++++------------ > tools/perf/ui/gtk/hists.c | 78 ++---------- > tools/perf/ui/hist.c | 138 +++++++++++++++------ > tools/perf/ui/stdio/hist.c | 11 +- > tools/perf/util/event.c | 156 ++++++++++++++--------- > tools/perf/util/hist.h | 20 ++- > tools/perf/util/machine.c | 46 +++---- > tools/perf/util/machine.h | 3 +- > tools/perf/util/parse-options.c | 37 +++++- > tools/perf/util/parse-options.h | 8 +- > tools/perf/util/session.c | 2 +- > tools/perf/util/thread.c | 21 ++++ > tools/perf/util/thread.h | 5 + > 27 files changed, 1094 insertions(+), 301 deletions(-) > create mode 100644 tools/perf/bench/futex-hash.c > create mode 100644 tools/perf/bench/futex-requeue.c > create mode 100644 tools/perf/bench/futex-wake.c > create mode 100644 tools/perf/bench/futex.h Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2013-11-18 20:27 Arnaldo Carvalho de Melo 0 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2013-11-18 20:27 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, David Ahern, Frederic Weisbecker, Jiri Olsa, Mike Galbraith, Namhyung Kim, Paul Mackerras, Pekka Enberg, Peter Zijlstra, Ramkumar Ramachandra, Stephane Eranian, Steven Rostedt, Arnaldo Carvalho de Melo From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit 89b4be142bf2491a94af325f5206fc2f2aa18960: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2013-11-15 07:35:50 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo for you to fetch changes up to b4070e339cd39e4b56604eddc3e93ee355027d45: tools lib traceevent: Fix use of multiple options in processing field (2013-11-18 17:09:51 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: . Make per-cpu mmaps the default, having inheritance turned on for all targets but --tid/-t. From Adrian Hunter. . Make 'perf top -g' refer to callchains, not --groups, to be consistent with 'perf record -g'. From David Ahern. . Tag thread comm as overriden, fix from Frederic Weisbecker. . Fix bogus group name when processing the perf.data file header, from Namhyung Kim. . Fix possible memory leaks in process_group_desc(), from Namhyung Kim. . Remove 'perf trace' thread summary coloring, from Pekka Enberg. . Generalize the bash completion scripts and make it work with zsh too, from Ramkumar Ramachandra. . Fix use of multiple options in processing field in libtraceevent, from Steven Rostedt. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (4): perf record: Make per-cpu mmaps the default. perf tools: Allow '--inherit' as the negation of '--no-inherit' perf tools: Add option macro OPT_BOOLEAN_SET perf record: Default -t option to no inheritance David Ahern (1): perf top: Make -g refer to callchains Frederic Weisbecker (1): perf tools: Tag thread comm as overriden Namhyung Kim (3): perf header: Fix bogus group name perf header: Fix possible memory leaks in process_group_desc() perf script: Move evname print code to process_event() Pekka Enberg (1): perf trace: Remove thread summary coloring Ramkumar Ramachandra (5): perf completion: introduce a layer of indirection perf completion: factor out compgen stuff perf completion: factor out call to __ltrim_colon_completions perf completion: introduce zsh support perf completion: rename file to reflect zsh support Steven Rostedt (1): tools lib traceevent: Fix use of multiple options in processing field tools/lib/traceevent/event-parse.c | 23 ++++- tools/perf/Documentation/perf-record.txt | 12 +-- tools/perf/Documentation/perf-top.txt | 5 +- tools/perf/Makefile.perf | 4 +- tools/perf/builtin-record.c | 13 ++- tools/perf/builtin-script.c | 11 ++- tools/perf/builtin-top.c | 4 +- tools/perf/builtin-trace.c | 13 +-- tools/perf/{bash_completion => perf-completion.sh} | 100 ++++++++++++++++++--- tools/perf/perf.h | 1 + tools/perf/tests/attr/test-record-no-inherit | 2 +- tools/perf/util/evlist.c | 6 +- tools/perf/util/evsel.c | 5 +- tools/perf/util/header.c | 6 +- tools/perf/util/parse-options.c | 21 +++++ tools/perf/util/parse-options.h | 8 ++ tools/perf/util/target.c | 11 ++- tools/perf/util/target.h | 4 +- tools/perf/util/thread.c | 11 ++- 19 files changed, 198 insertions(+), 62 deletions(-) rename tools/perf/{bash_completion => perf-completion.sh} (65%) ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2013-10-23 20:57 Arnaldo Carvalho de Melo 2013-10-24 6:52 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2013-10-23 20:57 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, David Ahern, Frederic Weisbecker, Hitoshi Mitake, Jiri Olsa, Linus Torvalds, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Arnaldo Carvalho de Melo From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Hi Ingo, Please consider pulling, - Arnaldo The following changes since commit aa30a2e03a453aad9fd96c3f2d4a82c3497674e5: Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-10-23 09:45:50 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo for you to fetch changes up to c1fb5651bb40f9efaf32d280f39e06df7e352673: perf tools: Show progress on histogram collapsing (2013-10-23 15:48:24 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: . Show progress on histogram collapsing, that can take a long time, from Namhyung Kim. . Support "$vars" meta argument syntax for local variables, allowing asking for all possible variables at a given probe point to be collected when it hits, from Masami Hiramatsu. . Address the root cause of that 'perf sched' stack initialization build slowdown, by programmatically setting a big array after moving the global variable back to the stack. Fix from Adrian Hunter. . Do not repipe attributes to a perf.data file in 'perf inject', fix from Adrian Hunter . Change the procps visible command-name of invididual benchmark tests plus cleanups, from Ingo Molnar. . Do not accept parse_tag_value() overflow, fix from Adrian Hunter. . Validate that mmap_pages is not too big. From Adrian Hunter. . Fix non-debug build, from Adrian Hunter . Clarify the "sample parsing" test entry. . Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Adrian Hunter (7): perf sched: Make struct perf_sched sched a local variable perf sched: Optimize build time perf script: Make perf_script a local variable perf inject: Do not repipe attributes to a perf.data file perf tools: Do not accept parse_tag_value() overflow perf evlist: Validate that mmap_pages is not too big perf tools: Fix non-debug build Arnaldo Carvalho de Melo (5): perf test: Clarify the "sample parsing" test entry perf test: Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test perf tools: Stop using 'self' in some more places perf ui: Rename ui_progress to ui_progress_ops perf ui progress: Per progress bar state Ingo Molnar (1): perf bench: Change the procps visible command-name of invididual benchmark tests plus cleanups Masami Hiramatsu (2): perf probe: Support "$vars" meta argument syntax for local variables perf probe: Find fentry mcount fuzzed parameter location Namhyung Kim (1): perf tools: Show progress on histogram collapsing tools/perf/Makefile.perf | 1 + tools/perf/builtin-annotate.c | 6 +- tools/perf/builtin-bench.c | 239 +++++++++++++++++++------------------- tools/perf/builtin-diff.c | 7 +- tools/perf/builtin-inject.c | 27 +++-- tools/perf/builtin-report.c | 24 ++-- tools/perf/builtin-sched.c | 44 +++---- tools/perf/builtin-script.c | 40 ++++--- tools/perf/builtin-top.c | 4 +- tools/perf/config/Makefile | 4 + tools/perf/tests/hists_link.c | 2 +- tools/perf/tests/sample-parsing.c | 4 +- tools/perf/ui/gtk/gtk.h | 2 +- tools/perf/ui/gtk/progress.c | 20 ++-- tools/perf/ui/gtk/setup.c | 2 +- tools/perf/ui/progress.c | 32 +++-- tools/perf/ui/progress.h | 19 +-- tools/perf/ui/tui/progress.c | 15 +-- tools/perf/ui/tui/setup.c | 3 +- tools/perf/ui/tui/tui.h | 6 + tools/perf/util/build-id.c | 6 +- tools/perf/util/evlist.c | 14 ++- tools/perf/util/hist.c | 23 ++-- tools/perf/util/hist.h | 3 +- tools/perf/util/probe-event.c | 1 - tools/perf/util/probe-finder.c | 133 ++++++++++++++++++--- tools/perf/util/probe-finder.h | 1 + tools/perf/util/session.c | 24 ++-- tools/perf/util/sort.c | 124 ++++++++++---------- tools/perf/util/strfilter.c | 46 ++++---- tools/perf/util/thread.c | 72 ++++++------ tools/perf/util/util.c | 2 + 32 files changed, 560 insertions(+), 390 deletions(-) create mode 100644 tools/perf/ui/tui/tui.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2013-10-23 20:57 Arnaldo Carvalho de Melo @ 2013-10-24 6:52 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2013-10-24 6:52 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen, David Ahern, Frederic Weisbecker, Hitoshi Mitake, Jiri Olsa, Linus Torvalds, Masami Hiramatsu, Mike Galbraith, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> > > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit aa30a2e03a453aad9fd96c3f2d4a82c3497674e5: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-10-23 09:45:50 +0200) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo > > for you to fetch changes up to c1fb5651bb40f9efaf32d280f39e06df7e352673: > > perf tools: Show progress on histogram collapsing (2013-10-23 15:48:24 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > . Show progress on histogram collapsing, that can take a long time, from > Namhyung Kim. > > . Support "$vars" meta argument syntax for local variables, allowing > asking for all possible variables at a given probe point to be > collected when it hits, from Masami Hiramatsu. > > . Address the root cause of that 'perf sched' stack initialization build > slowdown, by programmatically setting a big array after moving the > global variable back to the stack. Fix from Adrian Hunter. > > . Do not repipe attributes to a perf.data file in 'perf inject', > fix from Adrian Hunter > > . Change the procps visible command-name of invididual benchmark tests > plus cleanups, from Ingo Molnar. > > . Do not accept parse_tag_value() overflow, fix from Adrian Hunter. > > . Validate that mmap_pages is not too big. From Adrian Hunter. > > . Fix non-debug build, from Adrian Hunter > > . Clarify the "sample parsing" test entry. > > . Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Adrian Hunter (7): > perf sched: Make struct perf_sched sched a local variable > perf sched: Optimize build time > perf script: Make perf_script a local variable > perf inject: Do not repipe attributes to a perf.data file > perf tools: Do not accept parse_tag_value() overflow > perf evlist: Validate that mmap_pages is not too big > perf tools: Fix non-debug build > > Arnaldo Carvalho de Melo (5): > perf test: Clarify the "sample parsing" test entry > perf test: Consider PERF_SAMPLE_TRANSACTION in the "sample parsing" test > perf tools: Stop using 'self' in some more places > perf ui: Rename ui_progress to ui_progress_ops > perf ui progress: Per progress bar state > > Ingo Molnar (1): > perf bench: Change the procps visible command-name of invididual benchmark tests plus cleanups > > Masami Hiramatsu (2): > perf probe: Support "$vars" meta argument syntax for local variables > perf probe: Find fentry mcount fuzzed parameter location > > Namhyung Kim (1): > perf tools: Show progress on histogram collapsing > > tools/perf/Makefile.perf | 1 + > tools/perf/builtin-annotate.c | 6 +- > tools/perf/builtin-bench.c | 239 +++++++++++++++++++------------------- > tools/perf/builtin-diff.c | 7 +- > tools/perf/builtin-inject.c | 27 +++-- > tools/perf/builtin-report.c | 24 ++-- > tools/perf/builtin-sched.c | 44 +++---- > tools/perf/builtin-script.c | 40 ++++--- > tools/perf/builtin-top.c | 4 +- > tools/perf/config/Makefile | 4 + > tools/perf/tests/hists_link.c | 2 +- > tools/perf/tests/sample-parsing.c | 4 +- > tools/perf/ui/gtk/gtk.h | 2 +- > tools/perf/ui/gtk/progress.c | 20 ++-- > tools/perf/ui/gtk/setup.c | 2 +- > tools/perf/ui/progress.c | 32 +++-- > tools/perf/ui/progress.h | 19 +-- > tools/perf/ui/tui/progress.c | 15 +-- > tools/perf/ui/tui/setup.c | 3 +- > tools/perf/ui/tui/tui.h | 6 + > tools/perf/util/build-id.c | 6 +- > tools/perf/util/evlist.c | 14 ++- > tools/perf/util/hist.c | 23 ++-- > tools/perf/util/hist.h | 3 +- > tools/perf/util/probe-event.c | 1 - > tools/perf/util/probe-finder.c | 133 ++++++++++++++++++--- > tools/perf/util/probe-finder.h | 1 + > tools/perf/util/session.c | 24 ++-- > tools/perf/util/sort.c | 124 ++++++++++---------- > tools/perf/util/strfilter.c | 46 ++++---- > tools/perf/util/thread.c | 72 ++++++------ > tools/perf/util/util.c | 2 + > 32 files changed, 560 insertions(+), 390 deletions(-) > create mode 100644 tools/perf/ui/tui/tui.h Pulled, thanks Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2012-02-14 1:52 Arnaldo Carvalho de Melo 2012-02-14 2:50 ` Namhyung Kim 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-02-14 1:52 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker, Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Namhyung Kim, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47: x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo for you to fetch changes up to 7e1ccd3804281fc0755eb726b654469c40a96d89: perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200) ---------------------------------------------------------------- perf/core fixes and improvements. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- David Ahern (3): perf record: No build id option fails perf tools: Fix out of tree compiles perf tools: Allow multiple threads or processes in record, stat, top Jiri Olsa (3): perf tools: Remove unused functions from debugfs object perf tools: Add sysfs mountpoint interface perf tools: Add bitmap_or function into bitmap object Joerg Roedel (2): perf top: Don't process samples with no valid machine object perf tools: Change perf_guest default back to false Namhyung Kim (4): perf tools: Fix build dependency of perf python extension perf tools: Implement islower/isupper macro into util.h perf tools: ctype.c only wants util.h perf tools: Get rid of ctype.h in symbol.c Robert Richter (2): perf tools: Moving code in header.c perf tools: Factor out feature op to process header sections Stephane Eranian (2): perf tools: fix endianness detection in perf.data perf tools: cleanup initialization of attr->size tools/perf/Documentation/perf-record.txt | 4 +- tools/perf/Documentation/perf-stat.txt | 4 +- tools/perf/Documentation/perf-top.txt | 4 +- tools/perf/MANIFEST | 1 + tools/perf/Makefile | 7 +- tools/perf/builtin-record.c | 14 +- tools/perf/builtin-stat.c | 31 ++- tools/perf/builtin-test.c | 2 - tools/perf/builtin-top.c | 18 +- tools/perf/perf.h | 5 +- tools/perf/util/bitmap.c | 10 + tools/perf/util/ctype.c | 2 +- tools/perf/util/debugfs.c | 141 ---------- tools/perf/util/debugfs.h | 6 - tools/perf/util/evlist.c | 10 +- tools/perf/util/evlist.h | 4 +- tools/perf/util/evsel.c | 2 +- tools/perf/util/header.c | 421 +++++++++++++++++------------- tools/perf/util/hist.h | 1 + tools/perf/util/include/linux/bitmap.h | 11 + tools/perf/util/python-ext-sources | 19 ++ tools/perf/util/session.c | 10 + tools/perf/util/setup.py | 8 +- tools/perf/util/symbol.c | 2 +- tools/perf/util/sysfs.c | 60 +++++ tools/perf/util/sysfs.h | 6 + tools/perf/util/thread_map.c | 128 +++++++++ tools/perf/util/thread_map.h | 4 + tools/perf/util/top.c | 10 +- tools/perf/util/top.h | 2 +- tools/perf/util/usage.c | 6 +- tools/perf/util/util.c | 4 +- tools/perf/util/util.h | 6 +- 33 files changed, 571 insertions(+), 392 deletions(-) create mode 100644 tools/perf/util/python-ext-sources create mode 100644 tools/perf/util/sysfs.c create mode 100644 tools/perf/util/sysfs.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 1:52 Arnaldo Carvalho de Melo @ 2012-02-14 2:50 ` Namhyung Kim 2012-02-14 3:07 ` Namhyung Kim 0 siblings, 1 reply; 56+ messages in thread From: Namhyung Kim @ 2012-02-14 2:50 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, linux-kernel, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker, Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo Hello, 2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote: > The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47: > > x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo > > for you to fetch changes up to 7e1ccd3804281fc0755eb726b654469c40a96d89: > > perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200) > > ---------------------------------------------------------------- > perf/core fixes and improvements. > > Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com> > I've got a following error during a simple test: $ ./perf record -- sleep 1 Error: sys_perf_event_open() syscall returned with 22 (Invalid argument). /bin/dmesg may provide additional information. Fatal: No CONFIG_PERF_EVENTS=y kernel support configured? sleep: Terminated Any thoughts? Thanks, Namhyung > ---------------------------------------------------------------- > David Ahern (3): > perf record: No build id option fails > perf tools: Fix out of tree compiles > perf tools: Allow multiple threads or processes in record, stat, top > > Jiri Olsa (3): > perf tools: Remove unused functions from debugfs object > perf tools: Add sysfs mountpoint interface > perf tools: Add bitmap_or function into bitmap object > > Joerg Roedel (2): > perf top: Don't process samples with no valid machine object > perf tools: Change perf_guest default back to false > > Namhyung Kim (4): > perf tools: Fix build dependency of perf python extension > perf tools: Implement islower/isupper macro into util.h > perf tools: ctype.c only wants util.h > perf tools: Get rid of ctype.h in symbol.c > > Robert Richter (2): > perf tools: Moving code in header.c > perf tools: Factor out feature op to process header sections > > Stephane Eranian (2): > perf tools: fix endianness detection in perf.data > perf tools: cleanup initialization of attr->size > > tools/perf/Documentation/perf-record.txt | 4 +- > tools/perf/Documentation/perf-stat.txt | 4 +- > tools/perf/Documentation/perf-top.txt | 4 +- > tools/perf/MANIFEST | 1 + > tools/perf/Makefile | 7 +- > tools/perf/builtin-record.c | 14 +- > tools/perf/builtin-stat.c | 31 ++- > tools/perf/builtin-test.c | 2 - > tools/perf/builtin-top.c | 18 +- > tools/perf/perf.h | 5 +- > tools/perf/util/bitmap.c | 10 + > tools/perf/util/ctype.c | 2 +- > tools/perf/util/debugfs.c | 141 ---------- > tools/perf/util/debugfs.h | 6 - > tools/perf/util/evlist.c | 10 +- > tools/perf/util/evlist.h | 4 +- > tools/perf/util/evsel.c | 2 +- > tools/perf/util/header.c | 421 +++++++++++++++++------------- > tools/perf/util/hist.h | 1 + > tools/perf/util/include/linux/bitmap.h | 11 + > tools/perf/util/python-ext-sources | 19 ++ > tools/perf/util/session.c | 10 + > tools/perf/util/setup.py | 8 +- > tools/perf/util/symbol.c | 2 +- > tools/perf/util/sysfs.c | 60 +++++ > tools/perf/util/sysfs.h | 6 + > tools/perf/util/thread_map.c | 128 +++++++++ > tools/perf/util/thread_map.h | 4 + > tools/perf/util/top.c | 10 +- > tools/perf/util/top.h | 2 +- > tools/perf/util/usage.c | 6 +- > tools/perf/util/util.c | 4 +- > tools/perf/util/util.h | 6 +- > 33 files changed, 571 insertions(+), 392 deletions(-) > create mode 100644 tools/perf/util/python-ext-sources > create mode 100644 tools/perf/util/sysfs.c > create mode 100644 tools/perf/util/sysfs.h ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 2:50 ` Namhyung Kim @ 2012-02-14 3:07 ` Namhyung Kim 2012-02-14 5:10 ` Namhyung Kim 0 siblings, 1 reply; 56+ messages in thread From: Namhyung Kim @ 2012-02-14 3:07 UTC (permalink / raw) To: linux-kernel Cc: linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker, Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo 2012-02-14 오전 11:50, Namhyung Kim 쓴 글: > Hello, > > 2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote: >> The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47: >> >> x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100) >> >> are available in the git repository at: >> >> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo >> >> for you to fetch changes up to 7e1ccd3804281fc0755eb726b654469c40a96d89: >> >> perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200) >> >> ---------------------------------------------------------------- >> perf/core fixes and improvements. >> >> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com> >> > > I've got a following error during a simple test: > > $ ./perf record -- sleep 1 > > Error: sys_perf_event_open() syscall returned with 22 (Invalid argument). > /bin/dmesg may provide additional information. > > Fatal: No CONFIG_PERF_EVENTS=y kernel support configured? > > sleep: Terminated > > > Any thoughts? > > Thanks, > Namhyung > git bisect told me: c4a7dca92bbb9881a5d678720f1d0c2153499749 is the first bad commit commit c4a7dca92bbb9881a5d678720f1d0c2153499749 Author: Joerg Roedel <joerg.roedel@amd.com> Date: Fri Feb 10 18:05:05 2012 +0100 perf tools: Change perf_guest default back to false Setting perf_guest to true by default makes no sense because the perf subcommands can not setup guest symbol information and thus not process and guest samples. The only exception is perf-kvm which changes the perf_guest value on its own. So change the default for perf_guest back to false. Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Jason Wang <jasowang@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1328893505-4115-3-git-send-email-joerg.roedel@amd.com Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> :040000 040000 64d65944c9081dfd9ace65dbc19fca655cbdc708 4f0e86ab85314ba68f2295ae1e599f3bb5ab9484 M tools Thanks, Namhyung ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 3:07 ` Namhyung Kim @ 2012-02-14 5:10 ` Namhyung Kim 2012-02-14 5:23 ` David Ahern 0 siblings, 1 reply; 56+ messages in thread From: Namhyung Kim @ 2012-02-14 5:10 UTC (permalink / raw) To: Namhyung Kim Cc: linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, David Ahern, Frederic Weisbecker, Jason Wang, Jiri Olsa, Joerg Roedel, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo 2012-02-14 12:07 PM, Namhyung Kim wrote: > 2012-02-14 오전 11:50, Namhyung Kim 쓴 글: >> Hello, >> >> 2012-02-14 10:52 AM, Arnaldo Carvalho de Melo wrote: >>> The following changes since commit c98fdeaa92731308ed80386261fa2589addefa47: >>> >>> x86/sched/perf/AMD: Set sched_clock_stable (2012-02-07 13:12:08 +0100) >>> >>> are available in the git repository at: >>> >>> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf-core-for-mingo >>> >>> for you to fetch changes up to 7e1ccd3804281fc0755eb726b654469c40a96d89: >>> >>> perf tools: cleanup initialization of attr->size (2012-02-13 23:35:04 -0200) >>> >>> ---------------------------------------------------------------- >>> perf/core fixes and improvements. >>> >>> Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com> >>> >> >> I've got a following error during a simple test: >> >> $ ./perf record -- sleep 1 >> >> Error: sys_perf_event_open() syscall returned with 22 (Invalid argument). >> /bin/dmesg may provide additional information. >> >> Fatal: No CONFIG_PERF_EVENTS=y kernel support configured? >> >> sleep: Terminated >> >> >> Any thoughts? >> >> Thanks, >> Namhyung >> > > git bisect told me: > > c4a7dca92bbb9881a5d678720f1d0c2153499749 is the first bad commit > commit c4a7dca92bbb9881a5d678720f1d0c2153499749 > Author: Joerg Roedel<joerg.roedel@amd.com> > Date: Fri Feb 10 18:05:05 2012 +0100 > > perf tools: Change perf_guest default back to false > > Setting perf_guest to true by default makes no sense because the perf > subcommands can not setup guest symbol information and thus not process > and guest samples. The only exception is perf-kvm which changes the > perf_guest value on its own. So change the default for perf_guest back > to false. > > Cc: David Ahern<dsahern@gmail.com> > Cc: Ingo Molnar<mingo@elte.hu> > Cc: Jason Wang<jasowang@redhat.com> > Cc: Paul Mackerras<paulus@samba.org> > Cc: Peter Zijlstra<a.p.zijlstra@chello.nl> > Link: http://lkml.kernel.org/r/1328893505-4115-3-git-send-email-joerg.roedel@amd.com > Signed-off-by: Joerg Roedel<joerg.roedel@amd.com> > Signed-off-by: Arnaldo Carvalho de Melo<acme@redhat.com> > > :040000 040000 64d65944c9081dfd9ace65dbc19fca655cbdc708 4f0e86ab85314ba68f2295ae1e599f3bb5ab9484 M tools > > > Thanks, > Namhyung > It happened because I used old kernel version that isn't aware of the exclude_guest bit. So the check on attr->__reserved_1 in core.c::perf_copy_attr() failed and then ended up seeing EINVAL at perf_evsel__open(). So I think it should be handled in the same way of handling sample_id_all bit in perf record and top if we want to set perf_guest to false by default. I'll send patches for them soon. Thanks, Namhyung ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 5:10 ` Namhyung Kim @ 2012-02-14 5:23 ` David Ahern 2012-02-14 5:48 ` Namhyung Kim 2012-02-14 10:50 ` Joerg Roedel 0 siblings, 2 replies; 56+ messages in thread From: David Ahern @ 2012-02-14 5:23 UTC (permalink / raw) To: Namhyung Kim, Joerg Roedel Cc: Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo On 2/13/12 10:10 PM, Namhyung Kim wrote: >> > > It happened because I used old kernel version that isn't aware of the > exclude_guest bit. So the check on attr->__reserved_1 in > core.c::perf_copy_attr() failed and then ended up seeing EINVAL at > perf_evsel__open(). comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See https://lkml.org/lkml/2012/2/8/234 > > So I think it should be handled in the same way of handling > sample_id_all bit in perf record and top if we want to set perf_guest to > false by default. I'll send patches for them soon. > > Thanks, > Namhyung ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 5:23 ` David Ahern @ 2012-02-14 5:48 ` Namhyung Kim 2012-02-14 5:52 ` David Ahern 2012-02-14 10:50 ` Joerg Roedel 1 sibling, 1 reply; 56+ messages in thread From: Namhyung Kim @ 2012-02-14 5:48 UTC (permalink / raw) To: David Ahern Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo Hi, 2012-02-14 2:23 PM, David Ahern wrote: > On 2/13/12 10:10 PM, Namhyung Kim wrote: >>> >> >> It happened because I used old kernel version that isn't aware of the >> exclude_guest bit. So the check on attr->__reserved_1 in >> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at >> perf_evsel__open(). > > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See > > https://lkml.org/lkml/2012/2/8/234 > Thanks for the pointer, then I'll wait until the guys figure out what the correct fix is :) Thanks, Namhyung ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 5:48 ` Namhyung Kim @ 2012-02-14 5:52 ` David Ahern 2012-02-14 5:58 ` Namhyung Kim 0 siblings, 1 reply; 56+ messages in thread From: David Ahern @ 2012-02-14 5:52 UTC (permalink / raw) To: Namhyung Kim Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo On 2/13/12 10:48 PM, Namhyung Kim wrote: > Hi, > > 2012-02-14 2:23 PM, David Ahern wrote: >> On 2/13/12 10:10 PM, Namhyung Kim wrote: >>>> >>> >>> It happened because I used old kernel version that isn't aware of the >>> exclude_guest bit. So the check on attr->__reserved_1 in >>> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at >>> perf_evsel__open(). >> >> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See >> >> https://lkml.org/lkml/2012/2/8/234 >> > > Thanks for the pointer, then I'll wait until the guys figure out what > the correct fix is :) > > Thanks, > Namhyung Resetting that default was it. :-) Does reverting the entire patch fix your problem? David ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 5:52 ` David Ahern @ 2012-02-14 5:58 ` Namhyung Kim 0 siblings, 0 replies; 56+ messages in thread From: Namhyung Kim @ 2012-02-14 5:58 UTC (permalink / raw) To: David Ahern Cc: Joerg Roedel, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo 2012-02-14 2:52 PM, David Ahern wrote: > On 2/13/12 10:48 PM, Namhyung Kim wrote: >> Hi, >> >> 2012-02-14 2:23 PM, David Ahern wrote: >>> On 2/13/12 10:10 PM, Namhyung Kim wrote: >>>>> >>>> >>>> It happened because I used old kernel version that isn't aware of the >>>> exclude_guest bit. So the check on attr->__reserved_1 in >>>> core.c::perf_copy_attr() failed and then ended up seeing EINVAL at >>>> perf_evsel__open(). >>> >>> comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See >>> >>> https://lkml.org/lkml/2012/2/8/234 >>> >> >> Thanks for the pointer, then I'll wait until the guys figure out what >> the correct fix is :) >> >> Thanks, >> Namhyung > > Resetting that default was it. :-) > > Does reverting the entire patch fix your problem? > > David Yes, of course. OK, then I'll start to rework perf target cleanups after reverting it. Thanks, Namhyung ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 5:23 ` David Ahern 2012-02-14 5:48 ` Namhyung Kim @ 2012-02-14 10:50 ` Joerg Roedel 2012-02-14 13:10 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 56+ messages in thread From: Joerg Roedel @ 2012-02-14 10:50 UTC (permalink / raw) To: David Ahern Cc: Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver, arnaldo.melo, Arnaldo Carvalho de Melo On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote: > On 2/13/12 10:10 PM, Namhyung Kim wrote: > >> > > > >It happened because I used old kernel version that isn't aware of the > >exclude_guest bit. So the check on attr->__reserved_1 in > >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at > >perf_evsel__open(). > > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See > > https://lkml.org/lkml/2012/2/8/234 Grr. I totally forgot that issue. Is there some way to detect the perf kernel-features? Otherwise the only fix seems to be to drop the patch changing the default. The crashes should be fixed by the other patch already. Joerg -- AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 10:50 ` Joerg Roedel @ 2012-02-14 13:10 ` Arnaldo Carvalho de Melo 2012-02-14 14:38 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-02-14 13:10 UTC (permalink / raw) To: Joerg Roedel Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver Em Tue, Feb 14, 2012 at 11:50:18AM +0100, Joerg Roedel escreveu: > On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote: > > On 2/13/12 10:10 PM, Namhyung Kim wrote: > > >It happened because I used old kernel version that isn't aware of the > > >exclude_guest bit. So the check on attr->__reserved_1 in > > >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at > > >perf_evsel__open(). > > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See > > https://lkml.org/lkml/2012/2/8/234 > Grr. I totally forgot that issue. Is there some way to detect the perf > kernel-features? Otherwise the only fix seems to be to drop the patch > changing the default. The crashes should be fixed by the other patch > already. Well, we need to detect it like we do with sample_id_all. In this case we would try with exclude_guest, if it fails with EINVAL, we realise it is not available, clean that bit and try again. - Arnaldo ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 13:10 ` Arnaldo Carvalho de Melo @ 2012-02-14 14:38 ` Arnaldo Carvalho de Melo 2012-02-14 15:10 ` Joerg Roedel 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-02-14 14:38 UTC (permalink / raw) To: Joerg Roedel Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver Em Tue, Feb 14, 2012 at 11:10:46AM -0200, Arnaldo Carvalho de Melo escreveu: > Em Tue, Feb 14, 2012 at 11:50:18AM +0100, Joerg Roedel escreveu: > > On Mon, Feb 13, 2012 at 10:23:07PM -0700, David Ahern wrote: > > > On 2/13/12 10:10 PM, Namhyung Kim wrote: > > > >It happened because I used old kernel version that isn't aware of the > > > >exclude_guest bit. So the check on attr->__reserved_1 in > > > >core.c::perf_copy_attr() failed and then ended up seeing EINVAL at > > > >perf_evsel__open(). > > > > comes back to 1aed2671738785e8f5aea663a6fda91aa7ef59b5 again. See > > > > https://lkml.org/lkml/2012/2/8/234 > > > Grr. I totally forgot that issue. Is there some way to detect the perf > > kernel-features? Otherwise the only fix seems to be to drop the patch > > changing the default. The crashes should be fixed by the other patch > > already. > > Well, we need to detect it like we do with sample_id_all. In this case > we would try with exclude_guest, if it fails with EINVAL, we realise it > is not available, clean that bit and try again. The following patch should fix it, still untested tho, booting a machine with an < 3.1 kernel to check... - Arnaldo diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 08ed24b..d6c10e8 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -205,6 +205,9 @@ static void perf_record__open(struct perf_record *rec) if (opts->group && pos != first) group_fd = first->fd; +fallback_missing_features: + if (opts->exclude_guest_missing) + attr->exclude_guest = attr->exclude_host = 0; retry_sample_id: attr->sample_id_all = opts->sample_id_all_avail ? 1 : 0; try_again: @@ -218,15 +221,23 @@ try_again: } else if (err == ENODEV && opts->cpu_list) { die("No such device - did you specify" " an out-of-range profile CPU?\n"); - } else if (err == EINVAL && opts->sample_id_all_avail) { - /* - * Old kernel, no attr->sample_id_type_all field - */ - opts->sample_id_all_avail = false; - if (!opts->sample_time && !opts->raw_samples && !time_needed) - attr->sample_type &= ~PERF_SAMPLE_TIME; - - goto retry_sample_id; + } else if (err == EINVAL) { + if (!opts->exclude_guest_missing && + (attr->exclude_guest || attr->exclude_host)) { + pr_debug("Old kernel, cannot exclude " + "guest or host samples.\n"); + opts->exclude_guest_missing = true; + goto fallback_missing_features; + } else if (opts->sample_id_all_avail) { + /* + * Old kernel, no attr->sample_id_type_all field + */ + opts->sample_id_all_avail = false; + if (!opts->sample_time && !opts->raw_samples && !time_needed) + attr->sample_type &= ~PERF_SAMPLE_TIME; + + goto retry_sample_id; + } } /* diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 5a88c0d..02e11ff 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -872,6 +872,9 @@ static void perf_top__start_counters(struct perf_top *top) attr->mmap = 1; attr->comm = 1; attr->inherit = top->inherit; +fallback_missing_features: + if (top->exclude_guest_missing) + attr->exclude_guest = attr->exclude_host = 0; retry_sample_id: attr->sample_id_all = top->sample_id_all_avail ? 1 : 0; try_again: @@ -883,12 +886,20 @@ try_again: if (err == EPERM || err == EACCES) { ui__error_paranoid(); goto out_err; - } else if (err == EINVAL && top->sample_id_all_avail) { - /* - * Old kernel, no attr->sample_id_type_all field - */ - top->sample_id_all_avail = false; - goto retry_sample_id; + } else if (err == EINVAL) { + if (!top->exclude_guest_missing && + (attr->exclude_guest || attr->exclude_host)) { + pr_debug("Old kernel, cannot exclude " + "guest or host samples.\n"); + top->exclude_guest_missing = true; + goto fallback_missing_features; + } else if (top->sample_id_all_avail) { + /* + * Old kernel, no attr->sample_id_type_all field + */ + top->sample_id_all_avail = false; + goto retry_sample_id; + } } /* * If it's cycles then fall back to hrtimer diff --git a/tools/perf/perf.h b/tools/perf/perf.h index 03a0456..8b9c436 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h @@ -199,6 +199,7 @@ struct perf_record_opts { bool sample_address; bool sample_time; bool sample_id_all_avail; + bool exclude_guest_missing; bool system_wide; bool period; unsigned int freq; diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h index 49eb848..7dea891 100644 --- a/tools/perf/util/top.h +++ b/tools/perf/util/top.h @@ -35,6 +35,7 @@ struct perf_top { bool inherit; bool group; bool sample_id_all_avail; + bool exclude_guest_missing; bool dump_symtab; const char *cpu_list; struct hist_entry *sym_filter_entry; ^ permalink raw reply related [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 14:38 ` Arnaldo Carvalho de Melo @ 2012-02-14 15:10 ` Joerg Roedel 2012-02-14 16:11 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 56+ messages in thread From: Joerg Roedel @ 2012-02-14 15:10 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver On Tue, Feb 14, 2012 at 12:38:53PM -0200, Arnaldo Carvalho de Melo wrote: > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 08ed24b..d6c10e8 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -205,6 +205,9 @@ static void perf_record__open(struct perf_record *rec) > > if (opts->group && pos != first) > group_fd = first->fd; > +fallback_missing_features: > + if (opts->exclude_guest_missing) > + attr->exclude_guest = attr->exclude_host = 0; > retry_sample_id: > attr->sample_id_all = opts->sample_id_all_avail ? 1 : 0; > try_again: > @@ -218,15 +221,23 @@ try_again: > } else if (err == ENODEV && opts->cpu_list) { > die("No such device - did you specify" > " an out-of-range profile CPU?\n"); > - } else if (err == EINVAL && opts->sample_id_all_avail) { > - /* > - * Old kernel, no attr->sample_id_type_all field > - */ > - opts->sample_id_all_avail = false; > - if (!opts->sample_time && !opts->raw_samples && !time_needed) > - attr->sample_type &= ~PERF_SAMPLE_TIME; > - > - goto retry_sample_id; > + } else if (err == EINVAL) { > + if (!opts->exclude_guest_missing && > + (attr->exclude_guest || attr->exclude_host)) { > + pr_debug("Old kernel, cannot exclude " > + "guest or host samples.\n"); > + opts->exclude_guest_missing = true; > + goto fallback_missing_features; > + } else if (opts->sample_id_all_avail) { > + /* > + * Old kernel, no attr->sample_id_type_all field > + */ > + opts->sample_id_all_avail = false; > + if (!opts->sample_time && !opts->raw_samples && !time_needed) > + attr->sample_type &= ~PERF_SAMPLE_TIME; > + > + goto retry_sample_id; > + } > } > > /* > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 5a88c0d..02e11ff 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -872,6 +872,9 @@ static void perf_top__start_counters(struct perf_top *top) > attr->mmap = 1; > attr->comm = 1; > attr->inherit = top->inherit; > +fallback_missing_features: > + if (top->exclude_guest_missing) > + attr->exclude_guest = attr->exclude_host = 0; > retry_sample_id: > attr->sample_id_all = top->sample_id_all_avail ? 1 : 0; > try_again: > @@ -883,12 +886,20 @@ try_again: > if (err == EPERM || err == EACCES) { > ui__error_paranoid(); > goto out_err; > - } else if (err == EINVAL && top->sample_id_all_avail) { > - /* > - * Old kernel, no attr->sample_id_type_all field > - */ > - top->sample_id_all_avail = false; > - goto retry_sample_id; > + } else if (err == EINVAL) { > + if (!top->exclude_guest_missing && > + (attr->exclude_guest || attr->exclude_host)) { > + pr_debug("Old kernel, cannot exclude " > + "guest or host samples.\n"); > + top->exclude_guest_missing = true; > + goto fallback_missing_features; > + } else if (top->sample_id_all_avail) { > + /* > + * Old kernel, no attr->sample_id_type_all field > + */ > + top->sample_id_all_avail = false; > + goto retry_sample_id; > + } > } > /* > * If it's cycles then fall back to hrtimer > diff --git a/tools/perf/perf.h b/tools/perf/perf.h > index 03a0456..8b9c436 100644 > --- a/tools/perf/perf.h > +++ b/tools/perf/perf.h > @@ -199,6 +199,7 @@ struct perf_record_opts { > bool sample_address; > bool sample_time; > bool sample_id_all_avail; > + bool exclude_guest_missing; > bool system_wide; > bool period; > unsigned int freq; > diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h > index 49eb848..7dea891 100644 > --- a/tools/perf/util/top.h > +++ b/tools/perf/util/top.h > @@ -35,6 +35,7 @@ struct perf_top { > bool inherit; > bool group; > bool sample_id_all_avail; > + bool exclude_guest_missing; > bool dump_symtab; > const char *cpu_list; > struct hist_entry *sym_filter_entry; I was about to prepare a similar patch :) But anyway, this one works too. Tested-by: Joerg Roedel <joerg.roedel@amd.com> (on 2.6.32) -- AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2012-02-14 15:10 ` Joerg Roedel @ 2012-02-14 16:11 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-02-14 16:11 UTC (permalink / raw) To: Joerg Roedel Cc: David Ahern, Namhyung Kim, Namhyung Kim, linux-kernel, Ingo Molnar, Andi Kleen, Anshuman Khandual, Arun Sharma, Corey Ashford, Frederic Weisbecker, Jason Wang, Jiri Olsa, Lin Ming, Paul Mackerras, Peter Zijlstra, Roberto Agostino Vitillo, Robert Richter, Stephane Eranian, Thomas Gleixner, Vince Weaver Em Tue, Feb 14, 2012 at 04:10:39PM +0100, Joerg Roedel escreveu: > On Tue, Feb 14, 2012 at 12:38:53PM -0200, Arnaldo Carvalho de Melo wrote: > > bool sample_id_all_avail; > > + bool exclude_guest_missing; > > bool dump_symtab; > > const char *cpu_list; > > struct hist_entry *sym_filter_entry; > > I was about to prepare a similar patch :) But anyway, this one works > too. > > Tested-by: Joerg Roedel <joerg.roedel@amd.com> > > (on 2.6.32) thanks, I'm commiting it now after testing it on a 3.0-rt kernel, - Arnaldo ^ permalink raw reply [flat|nested] 56+ messages in thread
* [GIT PULL 00/16] perf/core improvements and fixes @ 2011-09-29 22:47 Arnaldo Carvalho de Melo 2011-10-04 7:57 ` Ingo Molnar 0 siblings, 1 reply; 56+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-09-29 22:47 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen, David Ahern, Frederic Weisbecker, Jim Cromie, Jiri Olsa, Mike Galbraith, Neil Horman, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Thomas Gleixner, arnaldo.melo Hi Ingo, Please consider pulling from: git://github.com/acmel/linux.git perf/core This was rebased against your perf/core on tesla. Regards, - Arnaldo Andi Kleen (2): perf tools: Make stat/record print fatal signals of the target program perf: Support setting the disassembler style Arnaldo Carvalho de Melo (6): perf symbols: Stop using 'self' in map_groups__ methods perf buildid-list: Add option to show the running kernel build id perf buildid-list: Support showing the build id in an ELF file perf top browser: Fix up line width calculation perf top: Improve lost events warning perf report: Fix stdio event name header printing Jim Cromie (5): perf stat: Add --log-fd <N> option to redirect stderr elsewhere perf stat: Fix +- nan% in --no-aggr runs perf stat: Suppress printing std-dev when its 0 perf stat: Allow tab as cvs delimiter perf stat: Fix spelling in comment Jiri Olsa (2): perf sched: Fix script command documentation perf symbols: Treat all memory maps without dso file as loaded Neil Horman (1): perf script: Add drop monitor script tools/perf/Documentation/perf-annotate.txt | 3 + tools/perf/Documentation/perf-buildid-list.txt | 6 + tools/perf/Documentation/perf-report.txt | 3 + tools/perf/Documentation/perf-sched.txt | 6 +- tools/perf/Documentation/perf-stat.txt | 11 ++- tools/perf/builtin-annotate.c | 2 + tools/perf/builtin-buildid-list.c | 52 ++++++++++- tools/perf/builtin-record.c | 19 ++++- tools/perf/builtin-report.c | 7 +- tools/perf/builtin-stat.c | 35 ++++++- tools/perf/builtin-top.c | 34 ++++---- .../perf/scripts/python/bin/net_dropmonitor-record | 2 + .../perf/scripts/python/bin/net_dropmonitor-report | 4 + tools/perf/scripts/python/net_dropmonitor.py | 72 ++++++++++++++ tools/perf/util/annotate.c | 6 +- tools/perf/util/annotate.h | 2 + tools/perf/util/map.c | 98 +++++++++++--------- tools/perf/util/map.h | 42 ++++---- tools/perf/util/top.h | 3 + tools/perf/util/ui/browsers/top.c | 28 +++++- 20 files changed, 333 insertions(+), 102 deletions(-) create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-record create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-report create mode 100755 tools/perf/scripts/python/net_dropmonitor.py ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [GIT PULL 00/16] perf/core improvements and fixes 2011-09-29 22:47 Arnaldo Carvalho de Melo @ 2011-10-04 7:57 ` Ingo Molnar 0 siblings, 0 replies; 56+ messages in thread From: Ingo Molnar @ 2011-10-04 7:57 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Andi Kleen, David Ahern, Frederic Weisbecker, Jim Cromie, Jiri Olsa, Mike Galbraith, Neil Horman, Paul Mackerras, Peter Zijlstra, Stephane Eranian, Thomas Gleixner, arnaldo.melo * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > Hi Ingo, > > Please consider pulling from: > > git://github.com/acmel/linux.git perf/core > > This was rebased against your perf/core on tesla. > > Regards, > > - Arnaldo > > Andi Kleen (2): > perf tools: Make stat/record print fatal signals of the target program > perf: Support setting the disassembler style > > Arnaldo Carvalho de Melo (6): > perf symbols: Stop using 'self' in map_groups__ methods > perf buildid-list: Add option to show the running kernel build id > perf buildid-list: Support showing the build id in an ELF file > perf top browser: Fix up line width calculation > perf top: Improve lost events warning > perf report: Fix stdio event name header printing > > Jim Cromie (5): > perf stat: Add --log-fd <N> option to redirect stderr elsewhere > perf stat: Fix +- nan% in --no-aggr runs > perf stat: Suppress printing std-dev when its 0 > perf stat: Allow tab as cvs delimiter > perf stat: Fix spelling in comment > > Jiri Olsa (2): > perf sched: Fix script command documentation > perf symbols: Treat all memory maps without dso file as loaded > > Neil Horman (1): > perf script: Add drop monitor script > > tools/perf/Documentation/perf-annotate.txt | 3 + > tools/perf/Documentation/perf-buildid-list.txt | 6 + > tools/perf/Documentation/perf-report.txt | 3 + > tools/perf/Documentation/perf-sched.txt | 6 +- > tools/perf/Documentation/perf-stat.txt | 11 ++- > tools/perf/builtin-annotate.c | 2 + > tools/perf/builtin-buildid-list.c | 52 ++++++++++- > tools/perf/builtin-record.c | 19 ++++- > tools/perf/builtin-report.c | 7 +- > tools/perf/builtin-stat.c | 35 ++++++- > tools/perf/builtin-top.c | 34 ++++---- > .../perf/scripts/python/bin/net_dropmonitor-record | 2 + > .../perf/scripts/python/bin/net_dropmonitor-report | 4 + > tools/perf/scripts/python/net_dropmonitor.py | 72 ++++++++++++++ > tools/perf/util/annotate.c | 6 +- > tools/perf/util/annotate.h | 2 + > tools/perf/util/map.c | 98 +++++++++++--------- > tools/perf/util/map.h | 42 ++++---- > tools/perf/util/top.h | 3 + > tools/perf/util/ui/browsers/top.c | 28 +++++- > 20 files changed, 333 insertions(+), 102 deletions(-) > create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-record > create mode 100755 tools/perf/scripts/python/bin/net_dropmonitor-report > create mode 100755 tools/perf/scripts/python/net_dropmonitor.py Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 56+ messages in thread
end of thread, other threads:[~2019-01-08 15:32 UTC | newest] Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-01-29 21:17 [GIT PULL 00/16] perf/core improvements and fixes Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 01/16] tools build: Check basic headers for test-compile feature checker Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 02/16] perf build: Fix feature-dump checks, we need to test all features Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 03/16] perf build: Remove all condition feature check {C,LD}FLAGS Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 04/16] perf build: Use feature dump file for build-test Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 05/16] perf tools: Speed up build-tests by reducing the number of builds tested Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 06/16] perf auxtrace: Add perf_evlist pointer to *info_priv_size() Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 07/16] perf buildid: Fix cpumode of buildid event Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 08/16] perf test: Check environment before start real BPF test Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 09/16] perf test: Improve bp_signal Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 10/16] perf tools: Move timestamp creation to util Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 11/16] perf record: Use OPT_BOOLEAN_SET for buildid cache related options Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 12/16] perf kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 13/16] perf kvm/{x86,s390}: Remove const from kvm_events_tp Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 14/16] perf kvm/powerpc: Port perf kvm stat to powerpc Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 15/16] perf kvm/powerpc: Add support for HCALL reasons Arnaldo Carvalho de Melo 2016-01-29 21:17 ` [PATCH 16/16] perf build: Align the names of the build tests: Arnaldo Carvalho de Melo 2016-02-03 10:02 ` [GIT PULL 00/16] perf/core improvements and fixes Ingo Molnar -- strict thread matches above, loose matches on Subject: below -- 2019-01-04 18:33 Arnaldo Carvalho de Melo 2019-01-08 15:32 ` Ingo Molnar 2016-07-05 0:38 Arnaldo Carvalho de Melo 2016-07-05 10:14 ` Ingo Molnar 2015-12-14 17:44 Arnaldo Carvalho de Melo 2015-10-05 21:03 Arnaldo Carvalho de Melo 2015-10-06 7:09 ` Ingo Molnar 2015-09-30 21:54 Arnaldo Carvalho de Melo 2015-10-01 7:05 ` Ingo Molnar 2015-08-25 16:14 Arnaldo Carvalho de Melo 2015-08-26 13:39 ` Arnaldo Carvalho de Melo 2015-04-07 16:40 Arnaldo Carvalho de Melo 2014-11-19 16:03 Arnaldo Carvalho de Melo 2014-11-20 7:33 ` Ingo Molnar 2014-08-22 16:29 Arnaldo Carvalho de Melo 2014-08-24 10:11 ` Ingo Molnar 2014-08-24 11:16 ` Arnaldo Carvalho de Melo 2014-08-24 14:47 ` Ingo Molnar 2014-03-14 21:29 Arnaldo Carvalho de Melo 2014-03-18 8:24 ` Ingo Molnar 2013-11-18 20:27 Arnaldo Carvalho de Melo 2013-10-23 20:57 Arnaldo Carvalho de Melo 2013-10-24 6:52 ` Ingo Molnar 2012-02-14 1:52 Arnaldo Carvalho de Melo 2012-02-14 2:50 ` Namhyung Kim 2012-02-14 3:07 ` Namhyung Kim 2012-02-14 5:10 ` Namhyung Kim 2012-02-14 5:23 ` David Ahern 2012-02-14 5:48 ` Namhyung Kim 2012-02-14 5:52 ` David Ahern 2012-02-14 5:58 ` Namhyung Kim 2012-02-14 10:50 ` Joerg Roedel 2012-02-14 13:10 ` Arnaldo Carvalho de Melo 2012-02-14 14:38 ` Arnaldo Carvalho de Melo 2012-02-14 15:10 ` Joerg Roedel 2012-02-14 16:11 ` Arnaldo Carvalho de Melo 2011-09-29 22:47 Arnaldo Carvalho de Melo 2011-10-04 7:57 ` Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).