* [PATCH 1/7] perf tools: Pass PYTHON config to feature detection
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 2/7] perf stat: Fix bug in handling events in error state Arnaldo Carvalho de Melo
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, David Carrillo-Cisneros, Alexander Shishkin,
Andi Kleen, He Kuang, Masami Hiramatsu, Paul Turner,
Peter Zijlstra, Simon Que, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
From: David Carrillo-Cisneros <davidcc@google.com>
( This is a rebased version of https://lkml.org/lkml/2017/2/7/662 )
Python's CC and link Makefile variables were not passed to feature
detection, causing feature detection to use system's Python rather than
PYTHON_CONFIG's one. This created a mismatch between the detected Python
support and the one actually used by perf when PYTHON_CONFIG is
specified.
Fix it by moving Python's variable initialization to before feature
detection and pass FLAGS_PYTHON_EMBED to Python's feature detection's
build target.
Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Simon Que <sque@chromium.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412064919.92449-2-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/build/feature/Makefile | 2 +-
tools/perf/Makefile.config | 31 ++++++++++++-------------------
2 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 09c9626ea666..523e587fe05f 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -175,7 +175,7 @@ $(OUTPUT)test-libperl.bin:
$(BUILD) $(FLAGS_PERL_EMBED)
$(OUTPUT)test-libpython.bin:
- $(BUILD)
+ $(BUILD) $(FLAGS_PYTHON_EMBED)
$(OUTPUT)test-libpython-version.bin:
$(BUILD)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 2b656de99495..cfd6015229a2 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -170,13 +170,20 @@ PYTHON2_CONFIG := \
override PYTHON_CONFIG := \
$(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON2_CONFIG))
-PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
+grep-libs = $(filter -l%,$(1))
+strip-libs = $(filter-out -l%,$(1))
-PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
-PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
+PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
-ifeq ($(CC), clang)
- PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
+ifdef PYTHON_CONFIG
+ PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
+ PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
+ PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
+ PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
+ ifeq ($(CC), clang)
+ PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
+ endif
+ FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
endif
FEATURE_CHECK_CFLAGS-libpython := $(PYTHON_EMBED_CCOPTS)
@@ -554,8 +561,6 @@ ifndef NO_GTK2
endif
endif
-grep-libs = $(filter -l%,$(1))
-strip-libs = $(filter-out -l%,$(1))
ifdef NO_LIBPERL
CFLAGS += -DNO_LIBPERL
@@ -603,21 +608,9 @@ else
$(call disable-python,No 'python-config' tool was found: disables Python support - please install python-devel/python-dev)
else
- PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
-
- PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
- PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
- PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
- PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
- ifeq ($(CC), clang)
- PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
- endif
- FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
-
ifneq ($(feature-libpython), 1)
$(call disable-python,No 'Python.h' (for Python 2.x support) was found: disables Python support - please install python-devel/python-dev)
else
-
ifneq ($(feature-libpython-version), 1)
$(warning Python 3 is not yet supported; please set)
$(warning PYTHON and/or PYTHON_CONFIG appropriately.)
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/7] perf stat: Fix bug in handling events in error state
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 1/7] perf tools: Pass PYTHON config to feature detection Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 3/7] perf trace: Add usage of --no-syscalls in man page Arnaldo Carvalho de Melo
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Stephane Eranian, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Mathieu Poirier, Paul Turner,
Peter Zijlstra, Wang Nan, Arnaldo Carvalho de Melo
From: Stephane Eranian <eranian@google.com>
(This is a patch has been sitting in the Intel CQM/CMT driver series for
a while, despite not depend on it. Sending it now independently since
the series is being discarded.)
When an event is in error state, read() returns 0 instead of sizeof()
buffer. In certain modes, such as interval printing, ignoring the 0
return value may cause bogus count deltas to be computed and thus
invalid results printed.
This patch fixes this problem by modifying read_counters() to mark the
event as not scaled (scaled = -1) to force the printout routine to show
<NOT COUNTED>.
Signed-off-by: Stephane Eranian <eranian@google.com>
Reviewed-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412182301.44406-1-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-stat.c | 12 +++++++++---
tools/perf/util/evsel.c | 4 ++--
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 868e086a6b59..610225b6326e 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -312,8 +312,12 @@ static int read_counter(struct perf_evsel *counter)
struct perf_counts_values *count;
count = perf_counts(counter->counts, cpu, thread);
- if (perf_evsel__read(counter, cpu, thread, count))
+ if (perf_evsel__read(counter, cpu, thread, count)) {
+ counter->counts->scaled = -1;
+ perf_counts(counter->counts, cpu, thread)->ena = 0;
+ perf_counts(counter->counts, cpu, thread)->run = 0;
return -1;
+ }
if (STAT_RECORD) {
if (perf_evsel__write_stat_event(counter, cpu, thread, count)) {
@@ -338,12 +342,14 @@ static int read_counter(struct perf_evsel *counter)
static void read_counters(void)
{
struct perf_evsel *counter;
+ int ret;
evlist__for_each_entry(evsel_list, counter) {
- if (read_counter(counter))
+ ret = read_counter(counter);
+ if (ret)
pr_debug("failed to read counter %s\n", counter->name);
- if (perf_stat_process_counter(&stat_config, counter))
+ if (ret == 0 && perf_stat_process_counter(&stat_config, counter))
pr_warning("failed to process counter %s\n", counter->name);
}
}
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 8f5d86bd3501..3779b9f3f134 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1239,7 +1239,7 @@ int perf_evsel__read(struct perf_evsel *evsel, int cpu, int thread,
if (FD(evsel, cpu, thread) < 0)
return -EINVAL;
- if (readn(FD(evsel, cpu, thread), count, sizeof(*count)) < 0)
+ if (readn(FD(evsel, cpu, thread), count, sizeof(*count)) <= 0)
return -errno;
return 0;
@@ -1257,7 +1257,7 @@ int __perf_evsel__read_on_cpu(struct perf_evsel *evsel,
if (evsel->counts == NULL && perf_evsel__alloc_counts(evsel, cpu + 1, thread + 1) < 0)
return -ENOMEM;
- if (readn(FD(evsel, cpu, thread), &count, nv * sizeof(u64)) < 0)
+ if (readn(FD(evsel, cpu, thread), &count, nv * sizeof(u64)) <= 0)
return -errno;
perf_evsel__compute_deltas(evsel, cpu, thread, &count);
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/7] perf trace: Add usage of --no-syscalls in man page
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 1/7] perf tools: Pass PYTHON config to feature detection Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 2/7] perf stat: Fix bug in handling events in error state Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 4/7] perf tools: Disable JVMTI if no ELF support available Arnaldo Carvalho de Melo
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Ravi Bangoria, Alexander Shishkin,
Alexis Berlemont, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
perf trace supports --no-syscalls option but it's not listed in the man
page. (Though, I see an example using --no-syscalls in EXAMPLES
section.)
Committer note:
The --no-syscalls option tells 'perf trace' not to automagically ask for
raw_syscalls:sys_{enter,exit} to then format it in a strace like way.
This become more used as 'perf trace' got support for arbitrary events,
such as tracepoints, so more and more we use:
# perf trace --no-syscalls -e nmi:*
0.000 nmi:nmi_handler:perf_event_nmi_handler() delta_ns: 36649 handled: 1)
0.019 nmi:nmi_handler:nmi_cpu_backtrace_handler() delta_ns: 2907 handled: 0)
0.676 nmi:nmi_handler:perf_event_nmi_handler() delta_ns: 9401 handled: 1)
0.680 nmi:nmi_handler:nmi_cpu_backtrace_handler() delta_ns: 288 handled: 0)
0.701 nmi:nmi_handler:perf_event_nmi_handler() delta_ns: 4977 handled: 1)
0.703 nmi:nmi_handler:nmi_cpu_backtrace_handler() delta_ns: 67 handled: 0)
0.736 nmi:nmi_handler:perf_event_nmi_handler() delta_ns: 8549 handled: 1)
^C#
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexis Berlemont <alexis.berlemont@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1492063332-5745-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-trace.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-trace.txt b/tools/perf/Documentation/perf-trace.txt
index afd728672b6f..c1e3288a2dfb 100644
--- a/tools/perf/Documentation/perf-trace.txt
+++ b/tools/perf/Documentation/perf-trace.txt
@@ -123,7 +123,8 @@ the thread executes on the designated CPUs. Default is to monitor all CPUs.
major or all pagefaults. Default value is maj.
--syscalls::
- Trace system calls. This options is enabled by default.
+ Trace system calls. This options is enabled by default, disable with
+ --no-syscalls.
--call-graph [mode,type,min[,limit],order[,key][,branch]]::
Setup and enable call-graph (stack chain/backtrace) recording.
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/7] perf tools: Disable JVMTI if no ELF support available
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2017-04-13 19:35 ` [PATCH 3/7] perf trace: Add usage of --no-syscalls in man page Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 5/7] tools build: Fix feature detection redefinion of build flags Arnaldo Carvalho de Melo
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, David Carrillo-Cisneros, Alexander Shishkin,
Andi Kleen, He Kuang, Masami Hiramatsu, Paul Turner,
Peter Zijlstra, Simon Que, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
From: David Carrillo-Cisneros <davidcc@google.com>
The build of JVMTI depends on LIBELF (-lelf). Make Makefile.conf
check this dependendancy and notify user when not present.
v2: Comma nitpicking.
Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Tested-by: Kim Phillips <kim.phillips@arm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Simon Que <sque@chromium.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412170745.26620-1-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile.config | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index cfd6015229a2..8354d04b392f 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -274,6 +274,7 @@ ifdef NO_LIBELF
NO_LIBUNWIND := 1
NO_LIBDW_DWARF_UNWIND := 1
NO_LIBBPF := 1
+ NO_JVMTI := 1
else
ifeq ($(feature-libelf), 0)
ifeq ($(feature-glibc), 1)
@@ -283,7 +284,7 @@ else
LIBC_SUPPORT := 1
endif
ifeq ($(LIBC_SUPPORT),1)
- msg := $(warning No libelf found, disables 'probe' tool and BPF support in 'perf record', please install libelf-dev, libelf-devel or elfutils-libelf-devel);
+ msg := $(warning No libelf found. Disables 'probe' tool, jvmti and BPF support in 'perf record'. Please install libelf-dev, libelf-devel or elfutils-libelf-devel);
NO_LIBELF := 1
NO_DWARF := 1
@@ -291,6 +292,7 @@ else
NO_LIBUNWIND := 1
NO_LIBDW_DWARF_UNWIND := 1
NO_LIBBPF := 1
+ NO_JVMTI := 1
else
ifneq ($(filter s% -static%,$(LDFLAGS),),)
msg := $(error No static glibc found, please install glibc-static);
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/7] tools build: Fix feature detection redefinion of build flags
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2017-04-13 19:35 ` [PATCH 4/7] perf tools: Disable JVMTI if no ELF support available Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 6/7] perf util: Hint missing file when tool tips fail to load Arnaldo Carvalho de Melo
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, David Carrillo-Cisneros, Alexander Shishkin,
Andi Kleen, He Kuang, Jiri Olsa, Masami Hiramatsu, Paul Turner,
Peter Zijlstra, Simon Que, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
From: David Carrillo-Cisneros <davidcc@google.com>
This change is a follow up of https://lkml.org/lkml/2017/2/2/16
The patch above avoided redefining CC, CXX and PKG_CONFIG in feature
detection. The patch was not merged due to a unsolved concern with the
-MD flag.
Later, commit c8c188679ccf ("tools build: Use the same CC for feature
detection and actual build") did the change for CC and CXX but not
PKG_CONFIG.
This patch makes PKG_CONFIG consistent with CC and CXX and moves the -MD
to CFLAGS, as suggested by Jiri in the thread above.
Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Simon Que <sque@chromium.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412064919.92449-3-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/build/feature/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 523e587fe05f..e35e4e5ad192 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -53,17 +53,17 @@ FILES= \
FILES := $(addprefix $(OUTPUT),$(FILES))
-CC ?= $(CROSS_COMPILE)gcc -MD
-CXX ?= $(CROSS_COMPILE)g++ -MD
-PKG_CONFIG := $(CROSS_COMPILE)pkg-config
+CC ?= $(CROSS_COMPILE)gcc
+CXX ?= $(CROSS_COMPILE)g++
+PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
LLVM_CONFIG ?= llvm-config
all: $(FILES)
-__BUILD = $(CC) $(CFLAGS) -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS)
+__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS)
BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1
-__BUILDXX = $(CXX) $(CXXFLAGS) -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
+__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1
###############################
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/7] perf util: Hint missing file when tool tips fail to load
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2017-04-13 19:35 ` [PATCH 5/7] tools build: Fix feature detection redefinion of build flags Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-13 19:35 ` [PATCH 7/7] Revert "perf tools: Fix include of linux/mman.h" Arnaldo Carvalho de Melo
2017-04-14 16:07 ` [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, David Carrillo-Cisneros, Alexander Shishkin,
Andi Kleen, He Kuang, Masami Hiramatsu, Paul Turner,
Peter Zijlstra, Simon Que, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
From: David Carrillo-Cisneros <davidcc@google.com>
Besides memory allocation failure, tips.txt may fail to load because the
file is not found (a more likely cause).
Communicate that to the user in tips failure warning.
Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Simon Que <sque@chromium.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412064919.92449-5-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/util.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index d8b45cea54d0..6097d87429e2 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -696,7 +696,8 @@ const char *perf_tip(const char *dirpath)
tips = strlist__new("tips.txt", &conf);
if (tips == NULL)
- return errno == ENOENT ? NULL : "Tip: get more memory! ;-p";
+ return errno == ENOENT ? NULL :
+ "Tip: check path of tips.txt or get more memory! ;-p";
if (strlist__nr_entries(tips) == 0)
goto out;
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 7/7] Revert "perf tools: Fix include of linux/mman.h"
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2017-04-13 19:35 ` [PATCH 6/7] perf util: Hint missing file when tool tips fail to load Arnaldo Carvalho de Melo
@ 2017-04-13 19:35 ` Arnaldo Carvalho de Melo
2017-04-14 16:07 ` [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
7 siblings, 0 replies; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-13 19:35 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, David Carrillo-Cisneros, Alexander Shishkin,
Andi Kleen, He Kuang, Masami Hiramatsu, Paul Turner,
Peter Zijlstra, Simon Que, Stephane Eranian, Wang Nan,
Arnaldo Carvalho de Melo
From: David Carrillo-Cisneros <davidcc@google.com>
In https://lkml.org/lkml/2017/2/2/16 I reported a build error that I
believed was caused by wrong uapi includes. The synthom was fixed by
Arnaldo in:
commit 2f7db5557994 ("perf tools: Fix include of linux/mman.h")
but I was wrong attributing the problem to the uapi include.
The root cause was that I was using ARCH=x86_64, hence using the wrong
uapi include path. This explains why no one else ran into this build
problem.
Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Simon Que <sque@chromium.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/20170412064919.92449-8-davidcc@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/event.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 8255a26ac255..4d7e65fa9d86 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -1,5 +1,5 @@
#include <linux/types.h>
-#include <linux/mman.h> /* To get things like MAP_HUGETLB even on older libc headers */
+#include <uapi/linux/mman.h> /* To get things like MAP_HUGETLB even on older libc headers */
#include <api/fs/fs.h>
#include "event.h"
#include "debug.h"
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [GIT PULL 0/7] perf/core improvements and fixes
2017-04-13 19:35 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2017-04-13 19:35 ` [PATCH 7/7] Revert "perf tools: Fix include of linux/mman.h" Arnaldo Carvalho de Melo
@ 2017-04-14 16:07 ` Arnaldo Carvalho de Melo
2017-04-17 8:15 ` Ingo Molnar
7 siblings, 1 reply; 10+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-14 16:07 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexis Berlemont, Andi Kleen, David Carrillo-Cisneros, He Kuang,
Jiri Olsa, Kim Phillips, Masami Hiramatsu, Mathieu Poirier,
Paul Turner, Peter Zijlstra, Ravi Bangoria, Simon Que,
Stephane Eranian, Wang Nan
Em Thu, Apr 13, 2017 at 04:35:29PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
Ooops, here is the missing output from 'git-request-pull':
The following changes since commit a8d11cd0714f51877587f5ec891013ca46e163ac:
kprobes/x86: Consolidate insn decoder users for copying code (2017-04-12 09:23:47 +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-4.12-20170413
for you to fetch changes up to 16eb81365b70266c17d1141ef9b32c3110b22d17:
Revert "perf tools: Fix include of linux/mman.h" (2017-04-13 11:54:46 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix bug 'perf stat' in handling events in error state (Stephane Eranian)
Documentation:
- Add usage of --no-syscalls in 'perf trace' man page (Ravi Bangoria)
Infrastructure:
- Pass PYTHON config to feature detection (David Carrillo-Cisneros)
- Disable JVMTI if no ELF support available (David Carrillo-Cisneros)
- Fix feature detection redefinion of build flags (David Carrillo-Cisneros)
- Hint missing file when tool tips fail to load (David Carrillo-Cisneros)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
David Carrillo-Cisneros (5):
perf tools: Pass PYTHON config to feature detection
perf tools: Disable JVMTI if no ELF support available
tools build: Fix feature detection redefinion of build flags
perf util: Hint missing file when tool tips fail to load
Revert "perf tools: Fix include of linux/mman.h"
Ravi Bangoria (1):
perf trace: Add usage of --no-syscalls in man page
Stephane Eranian (1):
perf stat: Fix bug in handling events in error state
tools/build/feature/Makefile | 12 +++++------
tools/perf/Documentation/perf-trace.txt | 3 ++-
tools/perf/Makefile.config | 35 ++++++++++++++-------------------
tools/perf/builtin-stat.c | 12 ++++++++---
tools/perf/util/event.c | 2 +-
tools/perf/util/evsel.c | 4 ++--
tools/perf/util/util.c | 3 ++-
7 files changed, 37 insertions(+), 34 deletions(-)
> Test results:
>
> The first ones are container (docker) based builds of tools/perf with and
> without libelf support, objtool where it is supported and samples/bpf/, ditto.
> Where clang is available, it is also used to build perf with/without libelf.
>
> For this specific pull request the samples/bpf/ was disabled, as 'make headers_install'
> is failing with the following error, in this case in fedora:rawhide:
>
> INSTALL usr/include/uapi/ (0 file)
> /git/linux/scripts/Makefile.headersinst:62: *** Missing generated UAPI file ./arch/x86/include/generated/uapi/asm/unistd_32.h. Stop.
> make[1]: *** [/git/linux/Makefile:1151: headers_install] Error 2
> make[1]: Leaving directory '/tmp/build/linux'
> make: *** [Makefile:152: sub-make] Error 2
> make: Leaving directory '/git/linux'
>
> I'll investigate later, perf and objtool builds just fine, with clang and gcc.
>
> 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
> 2 alpine:3.5: Ok
> 3 alpine:edge: Ok
> 4 android-ndk:r12b-arm: Ok
> 5 archlinux:latest: Ok
> 6 centos:5: Ok
> 7 centos:6: Ok
> 8 centos:7: Ok
> 9 debian:7: Ok
> 10 debian:8: Ok
> 11 debian:9: Ok
> 12 debian:experimental: Ok
> 13 debian:experimental-x-arm64: Ok
> 14 debian:experimental-x-mips: Ok
> 15 debian:experimental-x-mips64: Ok
> 16 debian:experimental-x-mipsel: Ok
> 17 fedora:20: Ok
> 18 fedora:21: Ok
> 19 fedora:22: Ok
> 20 fedora:23: Ok
> 21 fedora:24: Ok
> 22 fedora:24-x-ARC-uClibc: Ok
> 23 fedora:25: Ok
> 24 fedora:rawhide: Ok
> 25 mageia:5: Ok
> 26 opensuse:13.2: Ok
> 27 opensuse:42.1: Ok
> 28 opensuse:tumbleweed: Ok
> 29 ubuntu:12.04.5: Ok
> 30 ubuntu:14.04.4: Ok
> 31 ubuntu:14.04.4-x-linaro-arm64: Ok
> 32 ubuntu:15.10: Ok
> 33 ubuntu:16.04: Ok
> 34 ubuntu:16.04-x-arm: Ok
> 35 ubuntu:16.04-x-arm64: Ok
> 36 ubuntu:16.04-x-powerpc: Ok
> 37 ubuntu:16.04-x-powerpc64: Ok
> 38 ubuntu:16.04-x-s390: Ok
> 39 ubuntu:16.10: Ok
> 40 ubuntu:17.04: Ok
> #
>
> # uname -a
> Linux jouet 4.11.0-rc6+ #7 SMP Tue Apr 11 11:53:14 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
> # 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: Parse event definition strings : Ok
> 6: Simple expression parser : Ok
> 7: PERF_RECORD_* events & perf_sample fields : Ok
> 8: Parse perf pmu format : Ok
> 9: DSO data read : Ok
> 10: DSO data cache : Ok
> 11: DSO data reopen : Ok
> 12: Roundtrip evsel->name : Ok
> 13: Parse sched tracepoints fields : Ok
> 14: syscalls:sys_enter_openat event fields : Ok
> 15: Setup struct perf_event_attr : Ok
> 16: Match and link multiple hists : Ok
> 17: 'import perf' in python : Ok
> 18: Breakpoint overflow signal handler : Ok
> 19: Breakpoint overflow sampling : Ok
> 20: Number of exit events of a simple workload : Ok
> 21: Software clock events period values : Ok
> 22: Object code reading : Ok
> 23: Sample parsing : Ok
> 24: Use a dummy software event to keep tracking: Ok
> 25: Parse with no sample_id_all bit set : Ok
> 26: Filter hist entries : Ok
> 27: Lookup mmap thread : Ok
> 28: Share thread mg : Ok
> 29: Sort output of hist entries : Ok
> 30: Cumulate child hist entries : Ok
> 31: Track with sched_switch : Ok
> 32: Filter fds with revents mask in a fdarray : Ok
> 33: Add fd to a fdarray, making it autogrow : Ok
> 34: kmod_path__parse : Ok
> 35: Thread map : Ok
> 36: LLVM search and compile :
> 36.1: Basic BPF llvm compile : Ok
> 36.2: kbuild searching : Ok
> 36.3: Compile source for BPF prologue generation: Ok
> 36.4: Compile source for BPF relocation : Ok
> 37: Session topology : Ok
> 38: BPF filter :
> 38.1: Basic BPF filtering : Ok
> 38.2: BPF pinning : Ok
> 38.3: BPF prologue generation : Ok
> 38.4: BPF relocation checker : Ok
> 39: Synthesize thread map : Ok
> 40: Remove thread map : Ok
> 41: Synthesize cpu map : Ok
> 42: Synthesize stat config : Ok
> 43: Synthesize stat : Ok
> 44: Synthesize stat round : Ok
> 45: Synthesize attr update : Ok
> 46: Event times : Ok
> 47: Read backward ring buffer : Ok
> 48: Print cpu map : Ok
> 49: Probe SDT events : Ok
> 50: is_printable_array : Ok
> 51: Print bitmap : Ok
> 52: perf hooks : Ok
> 53: builtin clang support : Skip (not compiled in)
> 54: unit_number__scnprintf : Ok
> 55: x86 rdpmc : Ok
> 56: Convert perf time to TSC : Ok
> 57: DWARF unwind : Ok
> 58: x86 instruction decoder - new instructions : Ok
> 59: Intel cqm nmi context read : Skip
> #
>
> $ perf stat make -C tools/perf build-test
> make: Entering directory '/home/acme/git/linux/tools/perf'
> - tarpkg: ./tests/perf-targz-src-pkg .
> make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
> make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
> make_with_clangllvm_O: make LIBCLANGLLVM=1
> make_install_bin_O: make install-bin
> make_util_map_o_O: make util/map.o
> make_no_slang_O: make NO_SLANG=1
> make_no_libbpf_O: make NO_LIBBPF=1
> make_debug_O: make DEBUG=1
> make_no_newt_O: make NO_NEWT=1
> make_clean_all_O: make clean all
> make_no_backtrace_O: make NO_BACKTRACE=1
> make_no_demangle_O: make NO_DEMANGLE=1
> make_pure_O: make
> make_install_prefix_O: make install prefix=/tmp/krava
> make_no_auxtrace_O: make NO_AUXTRACE=1
> make_no_libperl_O: make NO_LIBPERL=1
> make_doc_O: make doc
> make_with_babeltrace_O: make LIBBABELTRACE=1
> make_static_O: make LDFLAGS=-static
> make_no_libelf_O: make NO_LIBELF=1
> make_no_libnuma_O: make NO_LIBNUMA=1
> make_util_pmu_bison_o_O: make util/pmu-bison.o
> make_no_libunwind_O: make NO_LIBUNWIND=1
> make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
> make_tags_O: make tags
> make_help_O: make help
> make_install_O: make install
> make_no_libpython_O: make NO_LIBPYTHON=1
> make_no_libbionic_O: make NO_LIBBIONIC=1
> make_install_prefix_slash_O: make install prefix=/tmp/krava/
> make_no_libaudit_O: make NO_LIBAUDIT=1
> make_no_gtk2_O: make NO_GTK2=1
> 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_perf_o_O: make perf.o
> OK
> make: Leaving directory '/home/acme/git/linux/tools/perf'
> $
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [GIT PULL 0/7] perf/core improvements and fixes
2017-04-14 16:07 ` [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2017-04-17 8:15 ` Ingo Molnar
0 siblings, 0 replies; 10+ messages in thread
From: Ingo Molnar @ 2017-04-17 8:15 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexis Berlemont, Andi Kleen, David Carrillo-Cisneros, He Kuang,
Jiri Olsa, Kim Phillips, Masami Hiramatsu, Mathieu Poirier,
Paul Turner, Peter Zijlstra, Ravi Bangoria, Simon Que,
Stephane Eranian, Wang Nan
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Em Thu, Apr 13, 2017 at 04:35:29PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Hi Ingo,
> >
> > Please consider pulling,
> >
> > - Arnaldo
> >
> > Test results at the end of this message, as usual.
>
> Ooops, here is the missing output from 'git-request-pull':
>
> The following changes since commit a8d11cd0714f51877587f5ec891013ca46e163ac:
>
> kprobes/x86: Consolidate insn decoder users for copying code (2017-04-12 09:23:47 +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-4.12-20170413
>
> for you to fetch changes up to 16eb81365b70266c17d1141ef9b32c3110b22d17:
>
> Revert "perf tools: Fix include of linux/mman.h" (2017-04-13 11:54:46 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Fix bug 'perf stat' in handling events in error state (Stephane Eranian)
>
> Documentation:
>
> - Add usage of --no-syscalls in 'perf trace' man page (Ravi Bangoria)
>
> Infrastructure:
>
> - Pass PYTHON config to feature detection (David Carrillo-Cisneros)
>
> - Disable JVMTI if no ELF support available (David Carrillo-Cisneros)
>
> - Fix feature detection redefinion of build flags (David Carrillo-Cisneros)
>
> - Hint missing file when tool tips fail to load (David Carrillo-Cisneros)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> David Carrillo-Cisneros (5):
> perf tools: Pass PYTHON config to feature detection
> perf tools: Disable JVMTI if no ELF support available
> tools build: Fix feature detection redefinion of build flags
> perf util: Hint missing file when tool tips fail to load
> Revert "perf tools: Fix include of linux/mman.h"
>
> Ravi Bangoria (1):
> perf trace: Add usage of --no-syscalls in man page
>
> Stephane Eranian (1):
> perf stat: Fix bug in handling events in error state
>
> tools/build/feature/Makefile | 12 +++++------
> tools/perf/Documentation/perf-trace.txt | 3 ++-
> tools/perf/Makefile.config | 35 ++++++++++++++-------------------
> tools/perf/builtin-stat.c | 12 ++++++++---
> tools/perf/util/event.c | 2 +-
> tools/perf/util/evsel.c | 4 ++--
> tools/perf/util/util.c | 3 ++-
> 7 files changed, 37 insertions(+), 34 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 10+ messages in thread