* [GIT PULL 00/10] perf/urgent fixes
@ 2014-10-29 12:56 Arnaldo Carvalho de Melo
2014-10-30 6:34 ` Ingo Molnar
0 siblings, 1 reply; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-10-29 12:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Andi Kleen, Arun Sharma,
Corey Ashford, David Ahern, Frederic Weisbecker, Hemant Kumar,
Jean Pihet, Jiri Olsa, Li Zefan, Masami Hiramatsu, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Srikar Dronamraju, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 1776b10627e486dd431fe72d8d47e5a865cf65d1:
perf/x86/intel: Revert incomplete and undocumented Broadwell client support (2014-10-29 11:07:58 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
for you to fetch changes up to 4cdcc33db2f0455f297b4e14e434ba311ec5ca06:
perf probe: Trivial typo fix for --demangle (2014-10-29 10:30:18 -0200)
----------------------------------------------------------------
perf/urgent fixes:
User visible:
* Fix report -F (abort, in_tx, mispredict, etc) segfaults for sample.data files
without branch info (Jiri Olsa)
* Add patch that should have went in a previous patchkit to use global cache
provided by libunwind (Namhyung Kim)
* Make CPUINFO_PROC an array to support different kernels, problem
detected when the information reported via /proc/cpuinfo changed on ARM (Wang Nan)
* 'perf probe' --demangle typo fix and a new --quiet option (Masami Hiramatsu)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Jiri Olsa (7):
perf tools: Fix report -F abort for data without branch info
perf tools: Fix report -F in_tx for data without branch info
perf tools: Fix report -F mispredict for data without branch info
perf tools: Fix report -F symbol_to for data without branch info
perf tools: Fix report -F symbol_from for data without branch info
perf tools: Fix report -F dso_to for data without branch info
perf tools: Fix report -F dso_from for data without branch info
Masami Hiramatsu (1):
perf probe: Trivial typo fix for --demangle
Namhyung Kim (1):
perf callchain: Use global caching provided by libunwind
Wang Nan (1):
perf tools: Make CPUINFO_PROC an array to support different kernel versions
tools/perf/builtin-probe.c | 2 +-
tools/perf/perf-sys.h | 30 +++++------
tools/perf/util/header.c | 27 +++++++---
tools/perf/util/sort.c | 102 +++++++++++++++++++++++++++----------
tools/perf/util/thread.c | 3 ++
tools/perf/util/unwind-libunwind.c | 12 +++++
tools/perf/util/unwind.h | 3 ++
7 files changed, 131 insertions(+), 48 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL 00/10] perf/urgent fixes
2014-10-29 12:56 Arnaldo Carvalho de Melo
@ 2014-10-30 6:34 ` Ingo Molnar
0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2014-10-30 6:34 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Andi Kleen, Arun Sharma, Corey Ashford, David Ahern,
Frederic Weisbecker, Hemant Kumar, Jean Pihet, Jiri Olsa,
Li Zefan, Masami Hiramatsu, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Srikar Dronamraju, 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 1776b10627e486dd431fe72d8d47e5a865cf65d1:
>
> perf/x86/intel: Revert incomplete and undocumented Broadwell client support (2014-10-29 11:07:58 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
>
> for you to fetch changes up to 4cdcc33db2f0455f297b4e14e434ba311ec5ca06:
>
> perf probe: Trivial typo fix for --demangle (2014-10-29 10:30:18 -0200)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> User visible:
>
> * Fix report -F (abort, in_tx, mispredict, etc) segfaults for sample.data files
> without branch info (Jiri Olsa)
>
> * Add patch that should have went in a previous patchkit to use global cache
> provided by libunwind (Namhyung Kim)
>
> * Make CPUINFO_PROC an array to support different kernels, problem
> detected when the information reported via /proc/cpuinfo changed on ARM (Wang Nan)
>
> * 'perf probe' --demangle typo fix and a new --quiet option (Masami Hiramatsu)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Jiri Olsa (7):
> perf tools: Fix report -F abort for data without branch info
> perf tools: Fix report -F in_tx for data without branch info
> perf tools: Fix report -F mispredict for data without branch info
> perf tools: Fix report -F symbol_to for data without branch info
> perf tools: Fix report -F symbol_from for data without branch info
> perf tools: Fix report -F dso_to for data without branch info
> perf tools: Fix report -F dso_from for data without branch info
>
> Masami Hiramatsu (1):
> perf probe: Trivial typo fix for --demangle
>
> Namhyung Kim (1):
> perf callchain: Use global caching provided by libunwind
>
> Wang Nan (1):
> perf tools: Make CPUINFO_PROC an array to support different kernel versions
>
> tools/perf/builtin-probe.c | 2 +-
> tools/perf/perf-sys.h | 30 +++++------
> tools/perf/util/header.c | 27 +++++++---
> tools/perf/util/sort.c | 102 +++++++++++++++++++++++++++----------
> tools/perf/util/thread.c | 3 ++
> tools/perf/util/unwind-libunwind.c | 12 +++++
> tools/perf/util/unwind.h | 3 ++
> 7 files changed, 131 insertions(+), 48 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL 00/10] perf/urgent fixes
@ 2015-01-16 21:22 Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 01/10] perf probe: Propagate error code when write(2) failed Arnaldo Carvalho de Melo
` (10 more replies)
0 siblings, 11 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexey Brodkin, Borislav Petkov, Cody P Schafer, David Ahern,
Don Zickus, Frederic Weisbecker, Jan Beulich, Jiri Olsa, Li Zefan,
Masami Hiramatsu, Michael Ellerman, Mike Galbraith, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Sukadev Bhattiprolu, Vineet Gupta, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 33636732dcd7cc738a5913bb730d663c6b03c8fb:
perf/x86/intel: Fix bug for "cycles:p" and "cycles:pp" on SLM (2015-01-16 09:06:59 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
for you to fetch changes up to 6bcf9c1ff3ec22fd81eba336737d9865476509b1:
perf tools powerpc: Use dwfl_report_elf() instead of offline. (2015-01-16 17:49:30 -0300)
----------------------------------------------------------------
perf/urgent fixes:
User visible:
- Fix segfault when using both the map symtab viewer and annotation
in the TUI (Namhyung Kim).
Developer stuff:
- uClibc build fixes (Alexey Brodkin, Vineet Gupta).
- bitops/hweight were moved from tools/perf/ too tools/include, move
some leftovers (Arnaldo Carvalho de Melo)
- Fix dwarf unwind x86_64 build error (Namhyung Kim)
- Fix __machine__findnew_thread() error path (Namhyung Kim)
- Propagate error code when write(2) failed in 'perf probe' (Namhyung Kim)
- Use dwfl_report_elf() instead of offline in powerpc bits to
properly handle non prelinked DSOs (Sukadev Bhattiprolu).
- Fix dwarf unwind using libunwind in 'perf test' (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Alexey Brodkin (1):
perf tools: Fix statfs.f_type data type mismatch build error with uclibc
Arnaldo Carvalho de Melo (1):
tools: Remove bitops/hweight usage of bits in tools/perf
Namhyung Kim (4):
perf probe: Propagate error code when write(2) failed
perf tools: Fix building error in x86_64 when dwarf unwind is on
perf machine: Fix __machine__findnew_thread() error path
perf tools: Fix segfault for symbol annotation on TUI
Sukadev Bhattiprolu (1):
perf tools powerpc: Use dwfl_report_elf() instead of offline.
Vineet Gupta (2):
perf tools: Elide strlcpy warning with uclibc
perf tools: Avoid build splat for syscall numbers with uclibc
Wang Nan (1):
perf test: Fix dwarf unwind using libunwind.
tools/include/asm-generic/bitops.h | 2 ++
tools/include/asm-generic/bitops/arch_hweight.h | 1 +
tools/include/asm-generic/bitops/const_hweight.h | 1 +
tools/include/asm-generic/bitops/hweight.h | 7 +++++
tools/include/linux/bitops.h | 7 ++++-
tools/lib/api/fs/debugfs.c | 2 +-
tools/lib/api/fs/fs.c | 2 +-
tools/perf/MANIFEST | 6 ++++
tools/perf/Makefile.perf | 11 +++++--
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 19 +++++++-----
tools/perf/bench/sched-pipe.c | 2 +-
tools/perf/builtin-top.c | 1 -
tools/perf/config/Makefile | 2 +-
tools/perf/config/Makefile.arch | 26 ++++++++--------
tools/perf/perf-sys.h | 1 -
tools/perf/tests/dwarf-unwind.c | 36 +++++++++++++++++++++--
tools/perf/util/annotate.h | 8 +----
tools/perf/util/cache.h | 2 ++
tools/perf/util/hweight.c | 31 -------------------
tools/perf/util/include/asm/hweight.h | 8 -----
tools/perf/util/machine.c | 4 ++-
tools/perf/util/probe-event.c | 4 ++-
tools/perf/util/python-ext-sources | 2 +-
tools/perf/util/unwind-libunwind.c | 28 +++++++++++++++++-
24 files changed, 131 insertions(+), 82 deletions(-)
create mode 100644 tools/include/asm-generic/bitops/arch_hweight.h
create mode 100644 tools/include/asm-generic/bitops/const_hweight.h
create mode 100644 tools/include/asm-generic/bitops/hweight.h
delete mode 100644 tools/perf/util/hweight.c
delete mode 100644 tools/perf/util/include/asm/hweight.h
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 01/10] perf probe: Propagate error code when write(2) failed
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 02/10] perf tools: Fix building error in x86_64 when dwarf unwind is on Arnaldo Carvalho de Melo
` (9 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Masami Hiramatsu, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
When it failed to write probe commands to the probe_event file in
debugfs, it needs to propagate the error code properly. Current code
blindly uses the return value of the write(2) so it always uses
-1 (-EPERM) and it might confuse users.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1420886028-15135-4-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/probe-event.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 7f9b8632e433..94a717bf007d 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2052,9 +2052,11 @@ static int write_probe_trace_event(int fd, struct probe_trace_event *tev)
pr_debug("Writing event: %s\n", buf);
if (!probe_event_dry_run) {
ret = write(fd, buf, strlen(buf));
- if (ret <= 0)
+ if (ret <= 0) {
+ ret = -errno;
pr_warning("Failed to write event: %s\n",
strerror_r(errno, sbuf, sizeof(sbuf)));
+ }
}
free(buf);
return ret;
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 02/10] perf tools: Fix building error in x86_64 when dwarf unwind is on
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 01/10] perf probe: Propagate error code when write(2) failed Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 03/10] perf machine: Fix __machine__findnew_thread() error path Arnaldo Carvalho de Melo
` (8 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Wang Nan, Jiri Olsa, Li Zefan,
Ingo Molnar, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
When build with 'make ARCH=x86' and dwarf unwind is on, there is a
compiling error:
CC /home/wn/perf/arch/x86/util/unwind-libdw.o
CC /home/wn/perf/arch/x86/tests/regs_load.o
arch/x86/tests/regs_load.S: Assembler messages:
arch/x86/tests/regs_load.S:65: Error: operand type mismatch for `push'
arch/x86/tests/regs_load.S:72: Error: operand type mismatch for `pop'
make[1]: *** [/home/wn/perf/arch/x86/tests/regs_load.o] Error 1
make[1]: INTERNAL: Exiting with 25 jobserver tokens available; should be 24!
make: *** [all] Error 2
...
Which is caused by incorrectly undefine macro HAVE_ARCH_X86_64_SUPPORT.
'config/Makefile.arch' tests __x86_64__ only when 'ARCH=x86_64'.
However, when building x86_64 kernel, ARCH=x86 is valid and commonly
used. Build systems, such as yocto, uses x86_64 compiler with 'ARCH=x86'
to build x86_64 perf, which causes mismatching.
As __LP64__ is defined for x86_64 as well, we can consolidate the
__x86_64__ check to the __LP64__ check and get rid of the IS_X86_64
IMHO.
(This patch is made by Namhyung Kim when replying my v1 patch:
https://lkml.org/lkml/2015/1/7/17
I modified the code to remove dependency on RAW_ARCH:
https://lkml.org/lkml/2015/1/7/865
Namhyung Kim didn't provide his SOB in his original email. I add
mine only for my modification.)
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1421029255-23039-1-git-send-email-wangnan0@huawei.com
[ Namhyung provided his S-o-B on a followup to this patch thread on lkml ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile.perf | 4 +++-
tools/perf/config/Makefile | 2 +-
tools/perf/config/Makefile.arch | 26 +++++++++++++-------------
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 67a03a825b3c..1f71a32aea78 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -462,10 +462,12 @@ BUILTIN_OBJS += $(OUTPUT)builtin-bench.o
# Benchmark modules
BUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o
BUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o
-ifeq ($(RAW_ARCH),x86_64)
+ifeq ($(ARCH), x86)
+ifeq ($(IS_64_BIT), 1)
BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy-x86-64-asm.o
BUILTIN_OBJS += $(OUTPUT)bench/mem-memset-x86-64-asm.o
endif
+endif
BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o
BUILTIN_OBJS += $(OUTPUT)bench/futex-hash.o
BUILTIN_OBJS += $(OUTPUT)bench/futex-wake.o
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 5d4b039fe1ed..648e31ff4021 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -20,7 +20,7 @@ NO_PERF_REGS := 1
# Additional ARCH settings for x86
ifeq ($(ARCH),x86)
- ifeq (${IS_X86_64}, 1)
+ ifeq (${IS_64_BIT}, 1)
CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT
ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S
LIBUNWIND_LIBS = -lunwind -lunwind-x86_64
diff --git a/tools/perf/config/Makefile.arch b/tools/perf/config/Makefile.arch
index 851cd0172a76..ff95a68741d1 100644
--- a/tools/perf/config/Makefile.arch
+++ b/tools/perf/config/Makefile.arch
@@ -1,7 +1,7 @@
uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
+RAW_ARCH := $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
@@ -9,23 +9,23 @@ ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/tile.*/tile/ )
# Additional ARCH settings for x86
-ifeq ($(ARCH),i386)
- override ARCH := x86
+ifeq ($(RAW_ARCH),i386)
+ ARCH ?= x86
endif
-ifeq ($(ARCH),x86_64)
- override ARCH := x86
- IS_X86_64 := 0
- ifeq (, $(findstring m32,$(CFLAGS)))
- IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1)
- RAW_ARCH := x86_64
+ifeq ($(RAW_ARCH),x86_64)
+ ARCH ?= x86
+
+ ifneq (, $(findstring m32,$(CFLAGS)))
+ RAW_ARCH := x86_32
endif
endif
-ifeq (${IS_X86_64}, 1)
+ARCH ?= $(RAW_ARCH)
+
+LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
+ifeq ($(LP64), 1)
IS_64_BIT := 1
-else ifeq ($(ARCH),x86)
- IS_64_BIT := 0
else
- IS_64_BIT := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
+ IS_64_BIT := 0
endif
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 03/10] perf machine: Fix __machine__findnew_thread() error path
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 01/10] perf probe: Propagate error code when write(2) failed Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 02/10] perf tools: Fix building error in x86_64 when dwarf unwind is on Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 04/10] tools: Remove bitops/hweight usage of bits in tools/perf Arnaldo Carvalho de Melo
` (7 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
When thread__init_map_groups() fails, a new thread should be removed
from the rbtree since it's gonna be freed. Also update last match cache
only if the function succeeded.
Reported-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1420763892-15535-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 94de3e48b490..1bca3a9f2b16 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -389,7 +389,6 @@ static struct thread *__machine__findnew_thread(struct machine *machine,
if (th != NULL) {
rb_link_node(&th->rb_node, parent, p);
rb_insert_color(&th->rb_node, &machine->threads);
- machine->last_match = th;
/*
* We have to initialize map_groups separately
@@ -400,9 +399,12 @@ static struct thread *__machine__findnew_thread(struct machine *machine,
* leader and that would screwed the rb tree.
*/
if (thread__init_map_groups(th, machine)) {
+ rb_erase(&th->rb_node, &machine->threads);
thread__delete(th);
return NULL;
}
+
+ machine->last_match = th;
}
return th;
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 04/10] tools: Remove bitops/hweight usage of bits in tools/perf
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 03/10] perf machine: Fix __machine__findnew_thread() error path Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 05/10] perf tools: Fix statfs.f_type data type mismatch build error with uclibc Arnaldo Carvalho de Melo
` (6 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker,
Jiri Olsa, Mike Galbraith, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian
From: Arnaldo Carvalho de Melo <acme@redhat.com>
We need to use lib/hweight.c for that, just like we do for lib/rbtree.c,
so tools need to link hweight.o. For now do it directly, but we need to
have a tools/lib/lk.a or .so that collects these goodies...
Reported-by: Jan Beulich <JBeulich@suse.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-a1e91dx3apzqw5kbdt7ut21s@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/include/asm-generic/bitops.h | 2 ++
tools/include/asm-generic/bitops/arch_hweight.h | 1 +
tools/include/asm-generic/bitops/const_hweight.h | 1 +
tools/include/asm-generic/bitops/hweight.h | 7 ++++++
tools/include/linux/bitops.h | 7 +++++-
tools/perf/MANIFEST | 6 +++++
tools/perf/Makefile.perf | 7 +++++-
tools/perf/util/hweight.c | 31 ------------------------
tools/perf/util/include/asm/hweight.h | 8 ------
tools/perf/util/python-ext-sources | 2 +-
10 files changed, 30 insertions(+), 42 deletions(-)
create mode 100644 tools/include/asm-generic/bitops/arch_hweight.h
create mode 100644 tools/include/asm-generic/bitops/const_hweight.h
create mode 100644 tools/include/asm-generic/bitops/hweight.h
delete mode 100644 tools/perf/util/hweight.c
delete mode 100644 tools/perf/util/include/asm/hweight.h
diff --git a/tools/include/asm-generic/bitops.h b/tools/include/asm-generic/bitops.h
index 6eedba1f7732..653d1bad77de 100644
--- a/tools/include/asm-generic/bitops.h
+++ b/tools/include/asm-generic/bitops.h
@@ -22,6 +22,8 @@
#error only <linux/bitops.h> can be included directly
#endif
+#include <asm-generic/bitops/hweight.h>
+
#include <asm-generic/bitops/atomic.h>
#endif /* __TOOLS_ASM_GENERIC_BITOPS_H */
diff --git a/tools/include/asm-generic/bitops/arch_hweight.h b/tools/include/asm-generic/bitops/arch_hweight.h
new file mode 100644
index 000000000000..318bb2b202b0
--- /dev/null
+++ b/tools/include/asm-generic/bitops/arch_hweight.h
@@ -0,0 +1 @@
+#include "../../../../include/asm-generic/bitops/arch_hweight.h"
diff --git a/tools/include/asm-generic/bitops/const_hweight.h b/tools/include/asm-generic/bitops/const_hweight.h
new file mode 100644
index 000000000000..0afd644aff83
--- /dev/null
+++ b/tools/include/asm-generic/bitops/const_hweight.h
@@ -0,0 +1 @@
+#include "../../../../include/asm-generic/bitops/const_hweight.h"
diff --git a/tools/include/asm-generic/bitops/hweight.h b/tools/include/asm-generic/bitops/hweight.h
new file mode 100644
index 000000000000..290120c01a8e
--- /dev/null
+++ b/tools/include/asm-generic/bitops/hweight.h
@@ -0,0 +1,7 @@
+#ifndef _TOOLS_LINUX_ASM_GENERIC_BITOPS_HWEIGHT_H_
+#define _TOOLS_LINUX_ASM_GENERIC_BITOPS_HWEIGHT_H_
+
+#include <asm-generic/bitops/arch_hweight.h>
+#include <asm-generic/bitops/const_hweight.h>
+
+#endif /* _TOOLS_LINUX_ASM_GENERIC_BITOPS_HWEIGHT_H_ */
diff --git a/tools/include/linux/bitops.h b/tools/include/linux/bitops.h
index 26005a15e7e2..5ad9ee1dd7f6 100644
--- a/tools/include/linux/bitops.h
+++ b/tools/include/linux/bitops.h
@@ -1,9 +1,9 @@
#ifndef _TOOLS_LINUX_BITOPS_H_
#define _TOOLS_LINUX_BITOPS_H_
+#include <asm/types.h>
#include <linux/kernel.h>
#include <linux/compiler.h>
-#include <asm/hweight.h>
#ifndef __WORDSIZE
#define __WORDSIZE (__SIZEOF_LONG__ * 8)
@@ -19,6 +19,11 @@
#define BITS_TO_U32(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(u32))
#define BITS_TO_BYTES(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE)
+extern unsigned int __sw_hweight8(unsigned int w);
+extern unsigned int __sw_hweight16(unsigned int w);
+extern unsigned int __sw_hweight32(unsigned int w);
+extern unsigned long __sw_hweight64(__u64 w);
+
/*
* Include this here because some architectures need generic_ffs/fls in
* scope
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index 83e2887f91a3..fbbfdc39271d 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -6,12 +6,15 @@ tools/lib/symbol/kallsyms.c
tools/lib/symbol/kallsyms.h
tools/lib/util/find_next_bit.c
tools/include/asm/bug.h
+tools/include/asm-generic/bitops/arch_hweight.h
tools/include/asm-generic/bitops/atomic.h
+tools/include/asm-generic/bitops/const_hweight.h
tools/include/asm-generic/bitops/__ffs.h
tools/include/asm-generic/bitops/__fls.h
tools/include/asm-generic/bitops/find.h
tools/include/asm-generic/bitops/fls64.h
tools/include/asm-generic/bitops/fls.h
+tools/include/asm-generic/bitops/hweight.h
tools/include/asm-generic/bitops.h
tools/include/linux/bitops.h
tools/include/linux/compiler.h
@@ -19,6 +22,8 @@ tools/include/linux/export.h
tools/include/linux/hash.h
tools/include/linux/log2.h
tools/include/linux/types.h
+include/asm-generic/bitops/arch_hweight.h
+include/asm-generic/bitops/const_hweight.h
include/asm-generic/bitops/fls64.h
include/asm-generic/bitops/__fls.h
include/asm-generic/bitops/fls.h
@@ -29,6 +34,7 @@ include/linux/list.h
include/linux/hash.h
include/linux/stringify.h
lib/find_next_bit.c
+lib/hweight.c
lib/rbtree.c
include/linux/swab.h
arch/*/include/asm/unistd*.h
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 1f71a32aea78..aa6a50447c32 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -232,12 +232,15 @@ LIB_H += ../include/linux/hash.h
LIB_H += ../../include/linux/stringify.h
LIB_H += util/include/linux/bitmap.h
LIB_H += ../include/linux/bitops.h
+LIB_H += ../include/asm-generic/bitops/arch_hweight.h
LIB_H += ../include/asm-generic/bitops/atomic.h
+LIB_H += ../include/asm-generic/bitops/const_hweight.h
LIB_H += ../include/asm-generic/bitops/find.h
LIB_H += ../include/asm-generic/bitops/fls64.h
LIB_H += ../include/asm-generic/bitops/fls.h
LIB_H += ../include/asm-generic/bitops/__ffs.h
LIB_H += ../include/asm-generic/bitops/__fls.h
+LIB_H += ../include/asm-generic/bitops/hweight.h
LIB_H += ../include/asm-generic/bitops.h
LIB_H += ../include/linux/compiler.h
LIB_H += ../include/linux/log2.h
@@ -255,7 +258,6 @@ LIB_H += util/include/linux/linkage.h
LIB_H += util/include/asm/asm-offsets.h
LIB_H += ../include/asm/bug.h
LIB_H += util/include/asm/byteorder.h
-LIB_H += util/include/asm/hweight.h
LIB_H += util/include/asm/swab.h
LIB_H += util/include/asm/system.h
LIB_H += util/include/asm/uaccess.h
@@ -745,6 +747,9 @@ $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c $(OUTPUT)PERF-CFLAGS
$(OUTPUT)util/rbtree.o: ../../lib/rbtree.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
+$(OUTPUT)util/hweight.o: ../../lib/hweight.c $(OUTPUT)PERF-CFLAGS
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
+
$(OUTPUT)util/find_next_bit.o: ../lib/util/find_next_bit.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
diff --git a/tools/perf/util/hweight.c b/tools/perf/util/hweight.c
deleted file mode 100644
index 5c1d0d099f0d..000000000000
--- a/tools/perf/util/hweight.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <linux/bitops.h>
-
-/**
- * hweightN - returns the hamming weight of a N-bit word
- * @x: the word to weigh
- *
- * The Hamming Weight of a number is the total number of bits set in it.
- */
-
-unsigned int hweight32(unsigned int w)
-{
- unsigned int res = w - ((w >> 1) & 0x55555555);
- res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
- res = (res + (res >> 4)) & 0x0F0F0F0F;
- res = res + (res >> 8);
- return (res + (res >> 16)) & 0x000000FF;
-}
-
-unsigned long hweight64(__u64 w)
-{
-#if BITS_PER_LONG == 32
- return hweight32((unsigned int)(w >> 32)) + hweight32((unsigned int)w);
-#elif BITS_PER_LONG == 64
- __u64 res = w - ((w >> 1) & 0x5555555555555555ul);
- res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
- res = (res + (res >> 4)) & 0x0F0F0F0F0F0F0F0Ful;
- res = res + (res >> 8);
- res = res + (res >> 16);
- return (res + (res >> 32)) & 0x00000000000000FFul;
-#endif
-}
diff --git a/tools/perf/util/include/asm/hweight.h b/tools/perf/util/include/asm/hweight.h
deleted file mode 100644
index 36cf26d434a5..000000000000
--- a/tools/perf/util/include/asm/hweight.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef PERF_HWEIGHT_H
-#define PERF_HWEIGHT_H
-
-#include <linux/types.h>
-unsigned int hweight32(unsigned int w);
-unsigned long hweight64(__u64 w);
-
-#endif /* PERF_HWEIGHT_H */
diff --git a/tools/perf/util/python-ext-sources b/tools/perf/util/python-ext-sources
index 16a475a7d492..6c6a6953fa93 100644
--- a/tools/perf/util/python-ext-sources
+++ b/tools/perf/util/python-ext-sources
@@ -10,7 +10,7 @@ util/ctype.c
util/evlist.c
util/evsel.c
util/cpumap.c
-util/hweight.c
+../../lib/hweight.c
util/thread_map.c
util/util.c
util/xyarray.c
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 05/10] perf tools: Fix statfs.f_type data type mismatch build error with uclibc
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 04/10] tools: Remove bitops/hweight usage of bits in tools/perf Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 06/10] perf tools: Elide strlcpy warning " Arnaldo Carvalho de Melo
` (5 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Alexey Brodkin, Borislav Petkov, Cody P Schafer,
Jiri Olsa, Namhyung Kim, Peter Zijlstra, Vineet Gupta,
Arnaldo Carvalho de Melo
From: Alexey Brodkin <abrodkin@synopsys.com>
ARC Linux uses the no legacy syscalls abi and corresponding uClibc headers
statfs defines f_type to be U32 which causes perf build breakage
http://git.uclibc.org/uClibc/tree/libc/sysdeps/linux/common-generic/bits/statfs.h
----------->8---------------
CC fs/fs.o
fs/fs.c: In function 'fs__valid_mount':
fs/fs.c:82:24: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
else if (st_fs.f_type != magic)
^
cc1: all warnings being treated as errors
----------->8---------------
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Cody P Schafer <dev@codyps.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Link: http://lkml.kernel.org/r/1420888254-17504-2-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/fs/debugfs.c | 2 +-
tools/lib/api/fs/fs.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/lib/api/fs/debugfs.c b/tools/lib/api/fs/debugfs.c
index a74fba6d7743..86ea2d7b8845 100644
--- a/tools/lib/api/fs/debugfs.c
+++ b/tools/lib/api/fs/debugfs.c
@@ -67,7 +67,7 @@ int debugfs_valid_mountpoint(const char *debugfs)
if (statfs(debugfs, &st_fs) < 0)
return -ENOENT;
- else if (st_fs.f_type != (long) DEBUGFS_MAGIC)
+ else if ((long)st_fs.f_type != (long)DEBUGFS_MAGIC)
return -ENOENT;
return 0;
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index 65d9be3f9887..128ef6332a6b 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -79,7 +79,7 @@ static int fs__valid_mount(const char *fs, long magic)
if (statfs(fs, &st_fs) < 0)
return -ENOENT;
- else if (st_fs.f_type != magic)
+ else if ((long)st_fs.f_type != magic)
return -ENOENT;
return 0;
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 06/10] perf tools: Elide strlcpy warning with uclibc
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 05/10] perf tools: Fix statfs.f_type data type mismatch build error with uclibc Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 07/10] perf tools: Avoid build splat for syscall numbers " Arnaldo Carvalho de Melo
` (4 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Vineet Gupta, Vineet Gupta, Alexey Brodkin,
Jiri Olsa, Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
----------------->8------------------
CC bench/sched-pipe.o
In file included from builtin-annotate.c:13:0:
util/cache.h:76:15: warning: redundant redeclaration of 'strlcpy'
[-Wredundant-decls]
extern size_t strlcpy(char *dest, const char *src, size_t size);
^
In file included from util/util.h:55:0,
from builtin.h:4,
from builtin-annotate.c:8:
~/vineetg/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/string.h:396:15:
note: previous declaration of 'strlcpy' was here
extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
----------------->8------------------
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-3-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/cache.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 5cf9e1b5989d..d04d770d90f6 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -71,7 +71,9 @@ extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2
extern char *perf_pathdup(const char *fmt, ...)
__attribute__((format (printf, 1, 2)));
+#ifndef __UCLIBC__
/* Matches the libc/libbsd function attribute so we declare this unconditionally: */
extern size_t strlcpy(char *dest, const char *src, size_t size);
+#endif
#endif /* __PERF_CACHE_H */
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 07/10] perf tools: Avoid build splat for syscall numbers with uclibc
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 06/10] perf tools: Elide strlcpy warning " Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 08/10] perf test: Fix dwarf unwind using libunwind Arnaldo Carvalho de Melo
` (3 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Vineet Gupta, Vineet Gupta, Alexey Brodkin,
Jiri Olsa, Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
This is due to duplicated unistd inclusion (via uClibc headers + kernel headers)
Also seen on ARM uClibc based tools
------- ARC build ---------->8-------------
CC util/evlist.o
In file included from
~/arc/k.org/arch/arc/include/uapi/asm/unistd.h:25:0,
from util/../perf-sys.h:10,
from util/../perf.h:15,
from util/event.h:7,
from util/event.c:3:
~/arc/k.org/include/uapi/asm-generic/unistd.h:906:0:
warning: "__NR_fcntl64" redefined [enabled by default]
#define __NR_fcntl64 __NR3264_fcntl
^
In file included from
~/arc/gnu/INSTALL_1412-arc-2014.12-rc1/arc-snps-linux-uclibc/sysroot/usr/include/sys/syscall.h:24:0,
from util/../perf-sys.h:6,
----------------->8-------------------
------- ARM build ---------->8-------------
CC FPIC plugin_scsi.o
In file included from util/../perf-sys.h:9:0,
from util/../perf.h:15,
from util/cache.h:7,
from perf.c:12:
~/arc/k.org/arch/arm/include/uapi/asm/unistd.h:28:0:
warning: "__NR_restart_syscall" redefined [enabled by default]
In file included from
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/syscall.h:25:0,
from util/../perf-sys.h:6,
from util/../perf.h:15,
from util/cache.h:7,
from perf.c:12:
~/buildroot/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/sysnum.h:17:0:
note: this is the location of the previous definition
----------------->8-------------------
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421156604-30603-4-git-send-email-vgupta@synopsys.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/bench/sched-pipe.c | 2 +-
tools/perf/builtin-top.c | 1 -
tools/perf/perf-sys.h | 1 -
3 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
index 07a8d7646a15..005cc283790c 100644
--- a/tools/perf/bench/sched-pipe.c
+++ b/tools/perf/bench/sched-pipe.c
@@ -19,12 +19,12 @@
#include <stdlib.h>
#include <signal.h>
#include <sys/wait.h>
-#include <linux/unistd.h>
#include <string.h>
#include <errno.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
+#include <sys/syscall.h>
#include <pthread.h>
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 961cea183a83..616f0fcb4701 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -66,7 +66,6 @@
#include <sys/utsname.h>
#include <sys/mman.h>
-#include <linux/unistd.h>
#include <linux/types.h>
static volatile int done;
diff --git a/tools/perf/perf-sys.h b/tools/perf/perf-sys.h
index a3b13d7dc1d4..6ef68165c9db 100644
--- a/tools/perf/perf-sys.h
+++ b/tools/perf/perf-sys.h
@@ -6,7 +6,6 @@
#include <sys/syscall.h>
#include <linux/types.h>
#include <linux/perf_event.h>
-#include <asm/unistd.h>
#if defined(__i386__)
#define mb() asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 08/10] perf test: Fix dwarf unwind using libunwind.
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 07/10] perf tools: Avoid build splat for syscall numbers " Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 09/10] perf tools: Fix segfault for symbol annotation on TUI Arnaldo Carvalho de Melo
` (2 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Ingo Molnar, Jiri Olsa, Li Zefan,
Masami Hiramatsu, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
Perf tool fails to unwind user stack if the event raises in a shared
object. This patch improves tests/dwarf-unwind.c to demonstrate the
problem by utilizing commonly used glibc function "bsearch". If perf is
not statically linked, the testcase will try to unwind a mixed call
trace.
By debugging libunwind I found that there is a bug in unwind-libunwind:
it always passes 0 as segbase to libunwind, cause libunwind unable to
locate debug_frame entry fir first level ip address (I add some more
debugging output into libunwind to make things clear):
>_Uarm_dwarf_find_debug_frame: start_ip = 10be98, end_ip = 10c2a4
>_Uarm_dwarf_find_debug_frame: found debug_frame table `/lib/libc-2.18.so': segbase=0x0, len=7, gp=0x0, table_data=0x449388
>_Uarm_dwarf_search_unwind_table: call lookup:ip = b6cd3bcc, segbase = 0, rel_ip = b6cd3bcc
>lookup: e->start_ip_offset = bcf18 (rel_ip = b6cd3bcc)
>lookup: e->start_ip_offset = 6d314 (rel_ip = b6cd3bcc)
>lookup: e->start_ip_offset = 33d0c (rel_ip = b6cd3bcc)
...
>lookup: e->start_ip_offset = 15d0c (rel_ip = b6cd3bcc)
>lookup: e->start_ip_offset = 15c40 (rel_ip = b6cd3bcc)
>_Uarm_dwarf_search_unwind_table: IP b6cd3bcc inside range b6c12000-b6d4c000, but no explicit unwind info found
>put_rs_cache: unmasking signals/interrupts and releasing lock
>_Uarm_dwarf_step: returning -10
>_Uarm_step: dwarf_step()=-10
This patch passes map->start as segbase to dwarf_find_debug_frame(), so
di will be initialized correctly.
In addition, dso and executable are different when setting segbase. This
patch first check whether the elf is executable, and pass segbase only
for shared object.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Ingo Molnar <mingo@redhat.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: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1421203007-75799-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/tests/dwarf-unwind.c | 36 ++++++++++++++++++++++++++++++++++--
tools/perf/util/unwind-libunwind.c | 28 +++++++++++++++++++++++++++-
2 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/tools/perf/tests/dwarf-unwind.c b/tools/perf/tests/dwarf-unwind.c
index ab28cca2cb97..0bf06bec68c7 100644
--- a/tools/perf/tests/dwarf-unwind.c
+++ b/tools/perf/tests/dwarf-unwind.c
@@ -11,6 +11,9 @@
#include "thread.h"
#include "callchain.h"
+/* For bsearch. We try to unwind functions in shared object. */
+#include <stdlib.h>
+
static int mmap_handler(struct perf_tool *tool __maybe_unused,
union perf_event *event,
struct perf_sample *sample __maybe_unused,
@@ -28,7 +31,7 @@ static int init_live_machine(struct machine *machine)
mmap_handler, machine, true);
}
-#define MAX_STACK 6
+#define MAX_STACK 8
static int unwind_entry(struct unwind_entry *entry, void *arg)
{
@@ -37,6 +40,8 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
static const char *funcs[MAX_STACK] = {
"test__arch_unwind_sample",
"unwind_thread",
+ "compare",
+ "bsearch",
"krava_3",
"krava_2",
"krava_1",
@@ -88,10 +93,37 @@ static int unwind_thread(struct thread *thread)
return err;
}
+static int global_unwind_retval = -INT_MAX;
+
+__attribute__ ((noinline))
+static int compare(void *p1, void *p2)
+{
+ /* Any possible value should be 'thread' */
+ struct thread *thread = *(struct thread **)p1;
+
+ if (global_unwind_retval == -INT_MAX)
+ global_unwind_retval = unwind_thread(thread);
+
+ return p1 - p2;
+}
+
__attribute__ ((noinline))
static int krava_3(struct thread *thread)
{
- return unwind_thread(thread);
+ struct thread *array[2] = {thread, thread};
+ void *fp = &bsearch;
+ /*
+ * make _bsearch a volatile function pointer to
+ * prevent potential optimization, which may expand
+ * bsearch and call compare directly from this function,
+ * instead of libc shared object.
+ */
+ void *(*volatile _bsearch)(void *, void *, size_t,
+ size_t, int (*)(void *, void *));
+
+ _bsearch = fp;
+ _bsearch(array, &thread, 2, sizeof(struct thread **), compare);
+ return global_unwind_retval;
}
__attribute__ ((noinline))
diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
index 371219a6daf1..6edf535f65c2 100644
--- a/tools/perf/util/unwind-libunwind.c
+++ b/tools/perf/util/unwind-libunwind.c
@@ -185,6 +185,28 @@ static u64 elf_section_offset(int fd, const char *name)
return offset;
}
+#ifndef NO_LIBUNWIND_DEBUG_FRAME
+static int elf_is_exec(int fd, const char *name)
+{
+ Elf *elf;
+ GElf_Ehdr ehdr;
+ int retval = 0;
+
+ elf = elf_begin(fd, PERF_ELF_C_READ_MMAP, NULL);
+ if (elf == NULL)
+ return 0;
+ if (gelf_getehdr(elf, &ehdr) == NULL)
+ goto out;
+
+ retval = (ehdr.e_type == ET_EXEC);
+
+out:
+ elf_end(elf);
+ pr_debug("unwind: elf_is_exec(%s): %d\n", name, retval);
+ return retval;
+}
+#endif
+
struct table_entry {
u32 start_ip_offset;
u32 fde_offset;
@@ -322,8 +344,12 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
#ifndef NO_LIBUNWIND_DEBUG_FRAME
/* Check the .debug_frame section for unwinding info */
if (!read_unwind_spec_debug_frame(map->dso, ui->machine, &segbase)) {
+ int fd = dso__data_fd(map->dso, ui->machine);
+ int is_exec = elf_is_exec(fd, map->dso->name);
+ unw_word_t base = is_exec ? 0 : map->start;
+
memset(&di, 0, sizeof(di));
- if (dwarf_find_debug_frame(0, &di, ip, 0, map->dso->name,
+ if (dwarf_find_debug_frame(0, &di, ip, base, map->dso->name,
map->start, map->end))
return dwarf_search_unwind_table(as, ip, &di, pi,
need_unwind_info, arg);
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 09/10] perf tools: Fix segfault for symbol annotation on TUI
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 08/10] perf test: Fix dwarf unwind using libunwind Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 10/10] perf tools powerpc: Use dwfl_report_elf() instead of offline Arnaldo Carvalho de Melo
2015-01-17 10:06 ` [GIT PULL 00/10] perf/urgent fixes Ingo Molnar
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, David Ahern, Jiri Olsa,
Masami Hiramatsu, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung@kernel.org>
Currently the symbol structure is allocated with symbol_conf.priv_size
to carry sideband information like annotation, map browser on TUI and
sort-by-name tree node. So retrieving these information from symbol
needs to care about the details of such placement.
However the annotation code just assumes that the symbol is placed after
the struct annotation. But actually there's other info between them.
So accessing those struct will lead to an undefined behavior (usually a
crash) after they write their info to the same location.
To reproduce the problem, please follow the steps below:
1. run perf report (TUI of course) with -v option
2. open map browser (by pressing right arrow key for any entry)
3. search any function (by pressing '/' key and input whatever..)
4. return to the hist browser (by pressing 'q' or left arrow key)
5. open annotation window for the same entry (by pressing 'a' key)
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1421234288-22758-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/annotate.h | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h
index 0784a9420528..cadbdc90a5cb 100644
--- a/tools/perf/util/annotate.h
+++ b/tools/perf/util/annotate.h
@@ -116,11 +116,6 @@ struct annotation {
struct annotated_source *src;
};
-struct sannotation {
- struct annotation annotation;
- struct symbol symbol;
-};
-
static inline struct sym_hist *annotation__histogram(struct annotation *notes, int idx)
{
return (((void *)¬es->src->histograms) +
@@ -129,8 +124,7 @@ static inline struct sym_hist *annotation__histogram(struct annotation *notes, i
static inline struct annotation *symbol__annotation(struct symbol *sym)
{
- struct sannotation *a = container_of(sym, struct sannotation, symbol);
- return &a->annotation;
+ return (void *)sym - symbol_conf.priv_size;
}
int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, int evidx);
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 10/10] perf tools powerpc: Use dwfl_report_elf() instead of offline.
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 09/10] perf tools: Fix segfault for symbol annotation on TUI Arnaldo Carvalho de Melo
@ 2015-01-16 21:22 ` Arnaldo Carvalho de Melo
2015-01-17 10:06 ` [GIT PULL 00/10] perf/urgent fixes Ingo Molnar
10 siblings, 0 replies; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-01-16 21:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Sukadev Bhattiprolu, Jiri Olsa, Michael Ellerman,
Arnaldo Carvalho de Melo
From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
dwfl_report_offline() works only when libraries are prelinked.
Replace dwfl_report_offline() with dwfl_report_elf() so we correctly
extract debug info even from libraries that are not prelinked.
Reported-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Tested-by: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Link: http://lkml.kernel.org/r/20150114221045.GA17703@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/tools/perf/arch/powerpc/util/skip-callchain-idx.c b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
index 3bb50eac5542..0c370f81e002 100644
--- a/tools/perf/arch/powerpc/util/skip-callchain-idx.c
+++ b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
@@ -103,7 +103,7 @@ static Dwarf_Frame *get_eh_frame(Dwfl_Module *mod, Dwarf_Addr pc)
return NULL;
}
- result = dwarf_cfi_addrframe(cfi, pc, &frame);
+ result = dwarf_cfi_addrframe(cfi, pc-bias, &frame);
if (result) {
pr_debug("%s(): %s\n", __func__, dwfl_errmsg(-1));
return NULL;
@@ -128,7 +128,7 @@ static Dwarf_Frame *get_dwarf_frame(Dwfl_Module *mod, Dwarf_Addr pc)
return NULL;
}
- result = dwarf_cfi_addrframe(cfi, pc, &frame);
+ result = dwarf_cfi_addrframe(cfi, pc-bias, &frame);
if (result) {
pr_debug("%s(): %s\n", __func__, dwfl_errmsg(-1));
return NULL;
@@ -145,7 +145,7 @@ static Dwarf_Frame *get_dwarf_frame(Dwfl_Module *mod, Dwarf_Addr pc)
* yet used)
* -1 in case of errors
*/
-static int check_return_addr(struct dso *dso, Dwarf_Addr pc)
+static int check_return_addr(struct dso *dso, u64 map_start, Dwarf_Addr pc)
{
int rc = -1;
Dwfl *dwfl;
@@ -155,6 +155,7 @@ static int check_return_addr(struct dso *dso, Dwarf_Addr pc)
Dwarf_Addr start = pc;
Dwarf_Addr end = pc;
bool signalp;
+ const char *exec_file = dso->long_name;
dwfl = dso->dwfl;
@@ -165,8 +166,10 @@ static int check_return_addr(struct dso *dso, Dwarf_Addr pc)
return -1;
}
- if (dwfl_report_offline(dwfl, "", dso->long_name, -1) == NULL) {
- pr_debug("dwfl_report_offline() failed %s\n",
+ mod = dwfl_report_elf(dwfl, exec_file, exec_file, -1,
+ map_start, false);
+ if (!mod) {
+ pr_debug("dwfl_report_elf() failed %s\n",
dwarf_errmsg(-1));
/*
* We normally cache the DWARF debug info and never
@@ -256,10 +259,10 @@ int arch_skip_callchain_idx(struct thread *thread, struct ip_callchain *chain)
return skip_slot;
}
- rc = check_return_addr(dso, ip);
+ rc = check_return_addr(dso, al.map->start, ip);
- pr_debug("DSO %s, nr %" PRIx64 ", ip 0x%" PRIx64 "rc %d\n",
- dso->long_name, chain->nr, ip, rc);
+ pr_debug("[DSO %s, sym %s, ip 0x%" PRIx64 "] rc %d\n",
+ dso->long_name, al.sym->name, ip, rc);
if (rc == 0) {
/*
--
1.9.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [GIT PULL 00/10] perf/urgent fixes
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2015-01-16 21:22 ` [PATCH 10/10] perf tools powerpc: Use dwfl_report_elf() instead of offline Arnaldo Carvalho de Melo
@ 2015-01-17 10:06 ` Ingo Molnar
10 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2015-01-17 10:06 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexey Brodkin, Borislav Petkov,
Cody P Schafer, David Ahern, Don Zickus, Frederic Weisbecker,
Jan Beulich, Jiri Olsa, Li Zefan, Masami Hiramatsu,
Michael Ellerman, Mike Galbraith, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Sukadev Bhattiprolu,
Vineet Gupta, 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 33636732dcd7cc738a5913bb730d663c6b03c8fb:
>
> perf/x86/intel: Fix bug for "cycles:p" and "cycles:pp" on SLM (2015-01-16 09:06:59 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo
>
> for you to fetch changes up to 6bcf9c1ff3ec22fd81eba336737d9865476509b1:
>
> perf tools powerpc: Use dwfl_report_elf() instead of offline. (2015-01-16 17:49:30 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> User visible:
>
> - Fix segfault when using both the map symtab viewer and annotation
> in the TUI (Namhyung Kim).
>
> Developer stuff:
>
> - uClibc build fixes (Alexey Brodkin, Vineet Gupta).
>
> - bitops/hweight were moved from tools/perf/ too tools/include, move
> some leftovers (Arnaldo Carvalho de Melo)
>
> - Fix dwarf unwind x86_64 build error (Namhyung Kim)
>
> - Fix __machine__findnew_thread() error path (Namhyung Kim)
>
> - Propagate error code when write(2) failed in 'perf probe' (Namhyung Kim)
>
> - Use dwfl_report_elf() instead of offline in powerpc bits to
> properly handle non prelinked DSOs (Sukadev Bhattiprolu).
>
> - Fix dwarf unwind using libunwind in 'perf test' (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Alexey Brodkin (1):
> perf tools: Fix statfs.f_type data type mismatch build error with uclibc
>
> Arnaldo Carvalho de Melo (1):
> tools: Remove bitops/hweight usage of bits in tools/perf
>
> Namhyung Kim (4):
> perf probe: Propagate error code when write(2) failed
> perf tools: Fix building error in x86_64 when dwarf unwind is on
> perf machine: Fix __machine__findnew_thread() error path
> perf tools: Fix segfault for symbol annotation on TUI
>
> Sukadev Bhattiprolu (1):
> perf tools powerpc: Use dwfl_report_elf() instead of offline.
>
> Vineet Gupta (2):
> perf tools: Elide strlcpy warning with uclibc
> perf tools: Avoid build splat for syscall numbers with uclibc
>
> Wang Nan (1):
> perf test: Fix dwarf unwind using libunwind.
>
> tools/include/asm-generic/bitops.h | 2 ++
> tools/include/asm-generic/bitops/arch_hweight.h | 1 +
> tools/include/asm-generic/bitops/const_hweight.h | 1 +
> tools/include/asm-generic/bitops/hweight.h | 7 +++++
> tools/include/linux/bitops.h | 7 ++++-
> tools/lib/api/fs/debugfs.c | 2 +-
> tools/lib/api/fs/fs.c | 2 +-
> tools/perf/MANIFEST | 6 ++++
> tools/perf/Makefile.perf | 11 +++++--
> tools/perf/arch/powerpc/util/skip-callchain-idx.c | 19 +++++++-----
> tools/perf/bench/sched-pipe.c | 2 +-
> tools/perf/builtin-top.c | 1 -
> tools/perf/config/Makefile | 2 +-
> tools/perf/config/Makefile.arch | 26 ++++++++--------
> tools/perf/perf-sys.h | 1 -
> tools/perf/tests/dwarf-unwind.c | 36 +++++++++++++++++++++--
> tools/perf/util/annotate.h | 8 +----
> tools/perf/util/cache.h | 2 ++
> tools/perf/util/hweight.c | 31 -------------------
> tools/perf/util/include/asm/hweight.h | 8 -----
> tools/perf/util/machine.c | 4 ++-
> tools/perf/util/probe-event.c | 4 ++-
> tools/perf/util/python-ext-sources | 2 +-
> tools/perf/util/unwind-libunwind.c | 28 +++++++++++++++++-
> 24 files changed, 131 insertions(+), 82 deletions(-)
> create mode 100644 tools/include/asm-generic/bitops/arch_hweight.h
> create mode 100644 tools/include/asm-generic/bitops/const_hweight.h
> create mode 100644 tools/include/asm-generic/bitops/hweight.h
> delete mode 100644 tools/perf/util/hweight.c
> delete mode 100644 tools/perf/util/include/asm/hweight.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL 00/10] perf/urgent fixes
@ 2016-05-12 20:03 Arnaldo Carvalho de Melo
2016-05-13 5:36 ` Ingo Molnar
0 siblings, 1 reply; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-12 20:03 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Andy Lutomirski, David Ahern, Jiri Olsa, Kees Cook,
Linus Torvalds, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
Steven Rostedt, Vinson Lee, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, test built on:
alldeps-fedora-rawhide: Ok
alldeps-ubuntu-14.04: Ok
alldeps-ubuntu-16.04: Ok
alldeps-fedora-20: Ok
alldeps-ubuntu-12.04: Ok
minimal-debian-experimental-x-mips64: Ok
minimal-debian-experimental-x-mips64el: Ok
minimal-debian-experimental-x-mipsel: Ok
minimal-ubuntu-x-arm: Ok
minimal-ubuntu-x-arm64: Ok
minimal-ubuntu-x-ppc64: Ok
minimal-ubuntu-x-ppc64el: Ok
alldeps-debian: Ok
alldeps-mageia: Ok
alldeps-rhel7: Ok
alldeps-centos: Ok
alldeps-opensuse: Ok
- Arnaldo
The following changes since commit 9f448cd3cbcec8995935e60b27802ae56aac8cc0:
perf/core: Disable the event on a truncated AUX record (2016-05-12 14:46:11 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-20160512
for you to fetch changes up to 42ef8a78c1f49f53f29f0f3a6f9a5bcbc653233e:
perf stat: Fallback to user only counters when perf_event_paranoid > 1 (2016-05-12 16:25:18 -0300)
----------------------------------------------------------------
perf/urgent fixes:
User visible:
- Fallback to usermode only counters when perf_event_paranoid > 1, which
is the case now (Arnaldo Carvalho de Melo)
- Do not reassign parg after collapse_tree() in libtraceevent, which
may cause tool crashes (Steven Rostedt)
Build fixes:
- Fix the build on Fedora Rawhide, where readdir_r() is deprecated and
also wrt -Werror=unused-const-variable= + x86_32_regoffset_table on
!x86_64 (Arnaldo Carvalho de Melo)
- Fix the build on Ubuntu 12.04.5, where dwarf_getlocations() isn't
available, i.e. libdw-dev < 0.157 (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (9):
perf tools: Use readdir() instead of deprecated readdir_r()
perf script: Use readdir() instead of deprecated readdir_r()
perf thread_map: Use readdir() instead of deprecated readdir_r()
perf tools: Use readdir() instead of deprecated readdir_r()
perf dwarf: Guard !x86_64 definitions under #ifdef else clause
perf probe: Check if dwarf_getlocations() is available
perf evsel: Improve EPERM error handling in open_strerror()
perf evsel: Handle EACCESS + perf_event_paranoid=2 in fallback()
perf stat: Fallback to user only counters when perf_event_paranoid > 1
Steven Rostedt (1):
tools lib traceevent: Do not reassign parg after collapse_tree()
tools/build/Makefile.feature | 2 +
tools/build/feature/Makefile | 4 ++
tools/build/feature/test-all.c | 5 ++
tools/build/feature/test-dwarf_getlocations.c | 12 +++++
tools/lib/traceevent/parse-filter.c | 4 +-
tools/perf/arch/x86/util/dwarf-regs.c | 8 +--
tools/perf/builtin-script.c | 70 +++++++++++++--------------
tools/perf/builtin-stat.c | 7 ++-
tools/perf/config/Makefile | 6 +++
tools/perf/util/dwarf-aux.c | 9 ++++
tools/perf/util/event.c | 12 ++---
tools/perf/util/evsel.c | 23 ++++++++-
tools/perf/util/parse-events.c | 60 +++++++++++------------
tools/perf/util/thread_map.c | 8 +--
14 files changed, 145 insertions(+), 85 deletions(-)
create mode 100644 tools/build/feature/test-dwarf_getlocations.c
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL 00/10] perf/urgent fixes
2016-05-12 20:03 Arnaldo Carvalho de Melo
@ 2016-05-13 5:36 ` Ingo Molnar
0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2016-05-13 5:36 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andy Lutomirski, David Ahern,
Jiri Olsa, Kees Cook, Linus Torvalds, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, Steven Rostedt, Vinson Lee,
Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, test built on:
>
> alldeps-fedora-rawhide: Ok
> alldeps-ubuntu-14.04: Ok
> alldeps-ubuntu-16.04: Ok
> alldeps-fedora-20: Ok
> alldeps-ubuntu-12.04: Ok
> minimal-debian-experimental-x-mips64: Ok
> minimal-debian-experimental-x-mips64el: Ok
> minimal-debian-experimental-x-mipsel: Ok
> minimal-ubuntu-x-arm: Ok
> minimal-ubuntu-x-arm64: Ok
> minimal-ubuntu-x-ppc64: Ok
> minimal-ubuntu-x-ppc64el: Ok
> alldeps-debian: Ok
> alldeps-mageia: Ok
> alldeps-rhel7: Ok
> alldeps-centos: Ok
> alldeps-opensuse: Ok
>
> - Arnaldo
>
> The following changes since commit 9f448cd3cbcec8995935e60b27802ae56aac8cc0:
>
> perf/core: Disable the event on a truncated AUX record (2016-05-12 14:46:11 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-20160512
>
> for you to fetch changes up to 42ef8a78c1f49f53f29f0f3a6f9a5bcbc653233e:
>
> perf stat: Fallback to user only counters when perf_event_paranoid > 1 (2016-05-12 16:25:18 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> User visible:
>
> - Fallback to usermode only counters when perf_event_paranoid > 1, which
> is the case now (Arnaldo Carvalho de Melo)
>
> - Do not reassign parg after collapse_tree() in libtraceevent, which
> may cause tool crashes (Steven Rostedt)
>
> Build fixes:
>
> - Fix the build on Fedora Rawhide, where readdir_r() is deprecated and
> also wrt -Werror=unused-const-variable= + x86_32_regoffset_table on
> !x86_64 (Arnaldo Carvalho de Melo)
>
> - Fix the build on Ubuntu 12.04.5, where dwarf_getlocations() isn't
> available, i.e. libdw-dev < 0.157 (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (9):
> perf tools: Use readdir() instead of deprecated readdir_r()
> perf script: Use readdir() instead of deprecated readdir_r()
> perf thread_map: Use readdir() instead of deprecated readdir_r()
> perf tools: Use readdir() instead of deprecated readdir_r()
> perf dwarf: Guard !x86_64 definitions under #ifdef else clause
> perf probe: Check if dwarf_getlocations() is available
> perf evsel: Improve EPERM error handling in open_strerror()
> perf evsel: Handle EACCESS + perf_event_paranoid=2 in fallback()
> perf stat: Fallback to user only counters when perf_event_paranoid > 1
>
> Steven Rostedt (1):
> tools lib traceevent: Do not reassign parg after collapse_tree()
>
> tools/build/Makefile.feature | 2 +
> tools/build/feature/Makefile | 4 ++
> tools/build/feature/test-all.c | 5 ++
> tools/build/feature/test-dwarf_getlocations.c | 12 +++++
> tools/lib/traceevent/parse-filter.c | 4 +-
> tools/perf/arch/x86/util/dwarf-regs.c | 8 +--
> tools/perf/builtin-script.c | 70 +++++++++++++--------------
> tools/perf/builtin-stat.c | 7 ++-
> tools/perf/config/Makefile | 6 +++
> tools/perf/util/dwarf-aux.c | 9 ++++
> tools/perf/util/event.c | 12 ++---
> tools/perf/util/evsel.c | 23 ++++++++-
> tools/perf/util/parse-events.c | 60 +++++++++++------------
> tools/perf/util/thread_map.c | 8 +--
> 14 files changed, 145 insertions(+), 85 deletions(-)
> create mode 100644 tools/build/feature/test-dwarf_getlocations.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 18+ messages in thread
* [GIT PULL 00/10] perf/urgent fixes
@ 2018-02-05 19:56 Arnaldo Carvalho de Melo
2018-02-05 21:28 ` Ingo Molnar
0 siblings, 1 reply; 18+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-02-05 19:56 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, Andi Kleen,
Christian Borntraeger, Dave Hansen, David Ahern, David Woodhouse,
Fenghua Yu, Hendrik Brueckner, Jiri Olsa, Juri Lelli, Kan Liang,
Maciej S . Szmigiero, Namhyung Kim, Paolo Bonzini, Paul Mackerras,
Peter Zijlstra, Radim Krčmář, Ravi Bangoria,
Stephane Eranian, Takashi Iwai, Thomas Gleixner, Thomas Richter,
Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 72906f38934a49faf4d2d38ea9ae32adcf7d5d0c:
Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2018-01-30 13:04:50 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180205
for you to fetch changes up to 2fe2230d4183d2c311bbb7b426491ac486216a16:
perf tools: Add trace/beauty/generated/ into .gitignore (2018-02-05 13:58:02 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- 'period' and 'freq' handling fixes for 'perf record', also
related: add Add PERF_SAMPLE_PERIOD into PEBS_FREERUNNING_FLAGS
in the x86 perf kernel driver (Jiri Olsa)
- Fix 'perf trace -i perf.data' callgraph handling (Ravi Bangoria)
- Synchronize tooling headers for asound, s390 and powerpc KVM,
sched and x86 features (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (5):
tools headers: Synchronize sound/asound.h
tooling headers: Synchronize updated s390 kvm UAPI headers
tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h
tools headers: Synchronize uapi/linux/sched.h
tools headers: Synchoronize x86 features UAPI headers
Jiri Olsa (3):
perf evsel: Fix period/freq terms setup
perf record: Fix period option handling
x86/events/intel/ds: Add PERF_SAMPLE_PERIOD into PEBS_FREERUNNING_FLAGS
Ravi Bangoria (2):
perf trace: Fix call-graph output
perf tools: Add trace/beauty/generated/ into .gitignore
arch/x86/events/perf_event.h | 3 ++-
tools/arch/powerpc/include/uapi/asm/kvm.h | 25 +++++++++++++++++++++++++
tools/arch/s390/include/uapi/asm/kvm.h | 5 ++++-
tools/arch/x86/include/asm/cpufeatures.h | 24 ++++++++++++++++++++----
tools/arch/x86/include/asm/disabled-features.h | 3 ++-
tools/arch/x86/include/asm/required-features.h | 3 ++-
tools/include/uapi/linux/kvm.h | 4 ++++
tools/include/uapi/linux/sched.h | 5 +++++
tools/include/uapi/sound/asound.h | 9 +++++++++
tools/perf/.gitignore | 1 +
tools/perf/builtin-record.c | 3 ++-
tools/perf/builtin-trace.c | 5 ++++-
tools/perf/perf.h | 1 +
tools/perf/util/evsel.c | 13 ++++++++++---
14 files changed, 91 insertions(+), 13 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support. Where clang is available, it is also used to build
perf with/without libelf.
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:edge : Ok gcc (Alpine 6.4.0) 6.4.0
5 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
6 amazonlinux:2 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
7 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
8 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
9 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
10 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
11 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
12 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
13 debian:8 : Ok gcc (Debian 4.9.2-10) 4.9.2
14 debian:9 : Ok gcc (Debian 6.3.0-18) 6.3.0 20170516
15 debian:experimental : Ok gcc (Debian 7.2.0-17) 7.2.1 20171205
16 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
17 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
18 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 7.2.0-11) 7.2.0
19 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
20 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
21 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
22 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
23 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
24 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
25 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
26 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
27 fedora:26 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
28 fedora:27 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
29 fedora:rawhide : Ok gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
30 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0
31 mageia:5 : Ok gcc (GCC) 4.9.2
32 mageia:6 : Ok gcc (Mageia 5.4.0-5.mga6) 5.4.0
33 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
34 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
35 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
36 opensuse:tumbleweed : Ok gcc (SUSE Linux) 7.3.0
37 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
38 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
39 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
40 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
41 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.4-2017.05) 5.4.1 20170404
42 ubuntu:15.04 : Ok gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
43 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
44 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
45 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
46 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
47 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
48 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
49 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
50 ubuntu:16.10 : Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
51 ubuntu:17.04 : Ok gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
52 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
53 ubuntu:18.04 : Ok gcc (Ubuntu 7.2.0-16ubuntu1) 7.2.0
# uname -a
Linux jouet 4.15.0-rc9+ #7 SMP Mon Jan 22 18:16:36 -03 2018 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: 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: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Use vfs_getname probe to get syscall args filenames : Ok
61: probe libc's inet_pton & backtrace it with ping : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_demangle_O: make NO_DEMANGLE=1
make_static_O: make LDFLAGS=-static
make_install_prefix_O: make install prefix=/tmp/krava
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_help_O: make help
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_doc_O: make doc
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libelf_O: make NO_LIBELF=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_util_map_o_O: make util/map.o
make_install_O: make install
make_no_libperl_O: make NO_LIBPERL=1
make_install_bin_O: make install-bin
make_perf_o_O: make perf.o
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_slang_O: make NO_SLANG=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_newt_O: make NO_NEWT=1
make_clean_all_O: make clean all
make_no_libbpf_O: make NO_LIBBPF=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_debug_O: make DEBUG=1
make_tags_O: make tags
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_pure_O: make
make_no_gtk2_O: make NO_GTK2=1
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [GIT PULL 00/10] perf/urgent fixes
2018-02-05 19:56 Arnaldo Carvalho de Melo
@ 2018-02-05 21:28 ` Ingo Molnar
0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2018-02-05 21:28 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, Andi Kleen,
Christian Borntraeger, Dave Hansen, David Ahern, David Woodhouse,
Fenghua Yu, Hendrik Brueckner, Jiri Olsa, Juri Lelli, Kan Liang,
Maciej S . Szmigiero, Namhyung Kim, Paolo Bonzini, Paul Mackerras,
Peter Zijlstra, Radim Krčmář, Ravi Bangoria,
Stephane Eranian, Takashi Iwai, Thomas Gleixner, Thomas Richter,
Wang Nan
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 72906f38934a49faf4d2d38ea9ae32adcf7d5d0c:
>
> Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2018-01-30 13:04:50 -0800)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.16-20180205
>
> for you to fetch changes up to 2fe2230d4183d2c311bbb7b426491ac486216a16:
>
> perf tools: Add trace/beauty/generated/ into .gitignore (2018-02-05 13:58:02 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes:
>
> - 'period' and 'freq' handling fixes for 'perf record', also
> related: add Add PERF_SAMPLE_PERIOD into PEBS_FREERUNNING_FLAGS
> in the x86 perf kernel driver (Jiri Olsa)
>
> - Fix 'perf trace -i perf.data' callgraph handling (Ravi Bangoria)
>
> - Synchronize tooling headers for asound, s390 and powerpc KVM,
> sched and x86 features (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (5):
> tools headers: Synchronize sound/asound.h
> tooling headers: Synchronize updated s390 kvm UAPI headers
> tools headers: Sync {tools/,}arch/powerpc/include/uapi/asm/kvm.h
> tools headers: Synchronize uapi/linux/sched.h
> tools headers: Synchoronize x86 features UAPI headers
>
> Jiri Olsa (3):
> perf evsel: Fix period/freq terms setup
> perf record: Fix period option handling
> x86/events/intel/ds: Add PERF_SAMPLE_PERIOD into PEBS_FREERUNNING_FLAGS
>
> Ravi Bangoria (2):
> perf trace: Fix call-graph output
> perf tools: Add trace/beauty/generated/ into .gitignore
>
> arch/x86/events/perf_event.h | 3 ++-
> tools/arch/powerpc/include/uapi/asm/kvm.h | 25 +++++++++++++++++++++++++
> tools/arch/s390/include/uapi/asm/kvm.h | 5 ++++-
> tools/arch/x86/include/asm/cpufeatures.h | 24 ++++++++++++++++++++----
> tools/arch/x86/include/asm/disabled-features.h | 3 ++-
> tools/arch/x86/include/asm/required-features.h | 3 ++-
> tools/include/uapi/linux/kvm.h | 4 ++++
> tools/include/uapi/linux/sched.h | 5 +++++
> tools/include/uapi/sound/asound.h | 9 +++++++++
> tools/perf/.gitignore | 1 +
> tools/perf/builtin-record.c | 3 ++-
> tools/perf/builtin-trace.c | 5 ++++-
> tools/perf/perf.h | 1 +
> tools/perf/util/evsel.c | 13 ++++++++++---
> 14 files changed, 91 insertions(+), 13 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2018-02-05 21:28 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-16 21:22 [GIT PULL 00/10] perf/urgent fixes Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 01/10] perf probe: Propagate error code when write(2) failed Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 02/10] perf tools: Fix building error in x86_64 when dwarf unwind is on Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 03/10] perf machine: Fix __machine__findnew_thread() error path Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 04/10] tools: Remove bitops/hweight usage of bits in tools/perf Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 05/10] perf tools: Fix statfs.f_type data type mismatch build error with uclibc Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 06/10] perf tools: Elide strlcpy warning " Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 07/10] perf tools: Avoid build splat for syscall numbers " Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 08/10] perf test: Fix dwarf unwind using libunwind Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 09/10] perf tools: Fix segfault for symbol annotation on TUI Arnaldo Carvalho de Melo
2015-01-16 21:22 ` [PATCH 10/10] perf tools powerpc: Use dwfl_report_elf() instead of offline Arnaldo Carvalho de Melo
2015-01-17 10:06 ` [GIT PULL 00/10] perf/urgent fixes Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2018-02-05 19:56 Arnaldo Carvalho de Melo
2018-02-05 21:28 ` Ingo Molnar
2016-05-12 20:03 Arnaldo Carvalho de Melo
2016-05-13 5:36 ` Ingo Molnar
2014-10-29 12:56 Arnaldo Carvalho de Melo
2014-10-30 6:34 ` 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).