* [GIT PULL 0/8] perf/urgent fixes
@ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 27+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Anton Blanchard,
Arnaldo Carvalho de Melo, Borislav Petkov, David Ahern,
David Howells, Dong Hao, Josh Boyer, Linus Torvalds, linux-arch,
linuxppc-dev, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Robert Richter, Runzhen Wang, Sukadev Bhattiprolu,
Thomas Gleixner, x86, Xiao Guangrong, acme
Hi Ingo,
Tested using a cross-compiler and directly on a Raspberry pi (ARM) with
raspbian.
Please consider pulling.
- Arnaldo
The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077:
Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7:
perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300)
----------------------------------------------------------------
perf/urgent fixes
. Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong.
. UAPI fixes to get perf building again in non-x86 arches, from David Howells.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent
David Howells (6):
x86: Export asm/{svm.h,vmx.h,perf_regs.h}
Merge branch 'x86-pre-uapi' into perf-uapi
tools: Define a Makefile function to do subdir processing
tools: Honour the O= flag when tool build called from a higher Makefile
tools: Pass the target in descend
perf: Make perf build for x86 with UAPI disintegration applied
Sukadev Bhattiprolu (1):
perf powerpc: Use uapi/unistd.h to fix build error
Xiao Guangrong (2):
perf kvm: Rename perf_kvm to perf_kvm_stat
perf kvm: Fix building perf kvm on non x86 arches
Makefile | 6 +-
arch/x86/include/asm/Kbuild | 3 +
include/linux/hw_breakpoint.h | 31 +-------
include/uapi/linux/Kbuild | 1 +
include/uapi/linux/hw_breakpoint.h | 30 ++++++++
tools/Makefile | 24 +++---
tools/perf/Makefile | 29 +++++++-
tools/perf/arch/x86/include/perf_regs.h | 2 +-
tools/perf/builtin-kvm.c | 121 +++++++++++++++++--------------
tools/perf/builtin-test.c | 2 +-
tools/perf/perf.h | 16 +---
tools/perf/util/evsel.c | 4 +-
tools/perf/util/evsel.h | 3 +-
tools/perf/util/header.h | 2 +-
tools/perf/util/parse-events-test.c | 2 +-
tools/perf/util/parse-events.c | 2 +-
tools/perf/util/parse-events.h | 2 +-
tools/perf/util/pmu.h | 2 +-
tools/perf/util/session.h | 2 +-
tools/scripts/Makefile.include | 23 +++++-
20 files changed, 181 insertions(+), 126 deletions(-)
create mode 100644 include/uapi/linux/hw_breakpoint.h
^ permalink raw reply [flat|nested] 27+ messages in thread* [GIT PULL 0/8] perf/urgent fixes @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: David Howells, linuxppc-dev, Paul Mackerras, Arnaldo Carvalho de Melo, Robert Richter, x86, Xiao Guangrong, acme, Sukadev Bhattiprolu, linux-arch, Peter Zijlstra, Namhyung Kim, Anton Blanchard, Arnaldo Carvalho de Melo, Dong Hao, Borislav Petkov, Runzhen Wang, Thomas Gleixner, linux-kernel, David Ahern, Linus Torvalds Hi Ingo, Tested using a cross-compiler and directly on a Raspberry pi (ARM) with raspbian. Please consider pulling. - Arnaldo The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077: Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7: perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300) ---------------------------------------------------------------- perf/urgent fixes . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong. . UAPI fixes to get perf building again in non-x86 arches, from David Howells. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (1): Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent David Howells (6): x86: Export asm/{svm.h,vmx.h,perf_regs.h} Merge branch 'x86-pre-uapi' into perf-uapi tools: Define a Makefile function to do subdir processing tools: Honour the O= flag when tool build called from a higher Makefile tools: Pass the target in descend perf: Make perf build for x86 with UAPI disintegration applied Sukadev Bhattiprolu (1): perf powerpc: Use uapi/unistd.h to fix build error Xiao Guangrong (2): perf kvm: Rename perf_kvm to perf_kvm_stat perf kvm: Fix building perf kvm on non x86 arches Makefile | 6 +- arch/x86/include/asm/Kbuild | 3 + include/linux/hw_breakpoint.h | 31 +------- include/uapi/linux/Kbuild | 1 + include/uapi/linux/hw_breakpoint.h | 30 ++++++++ tools/Makefile | 24 +++--- tools/perf/Makefile | 29 +++++++- tools/perf/arch/x86/include/perf_regs.h | 2 +- tools/perf/builtin-kvm.c | 121 +++++++++++++++++-------------- tools/perf/builtin-test.c | 2 +- tools/perf/perf.h | 16 +--- tools/perf/util/evsel.c | 4 +- tools/perf/util/evsel.h | 3 +- tools/perf/util/header.h | 2 +- tools/perf/util/parse-events-test.c | 2 +- tools/perf/util/parse-events.c | 2 +- tools/perf/util/parse-events.h | 2 +- tools/perf/util/pmu.h | 2 +- tools/perf/util/session.h | 2 +- tools/scripts/Makefile.include | 23 +++++- 20 files changed, 181 insertions(+), 126 deletions(-) create mode 100644 include/uapi/linux/hw_breakpoint.h ^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH 1/8] x86: Export asm/{svm.h,vmx.h,perf_regs.h} 2012-11-24 0:20 ` Arnaldo Carvalho de Melo (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, David Howells From: David Howells <dhowells@redhat.com> Export asm/{svm.h,vmx.h,perf_regs.h} so that they can be disintegrated. It looks from previous commits that the first two should have been exported, but the header-y lines weren't added to the Kbuild. I'm guessing that asm/perf_regs.h should be exported too. Signed-off-by: David Howells <dhowells@redhat.com> --- arch/x86/include/asm/Kbuild | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild index 66e5f0e..79fd8a3 100644 --- a/arch/x86/include/asm/Kbuild +++ b/arch/x86/include/asm/Kbuild @@ -12,6 +12,7 @@ header-y += mce.h header-y += msr-index.h header-y += msr.h header-y += mtrr.h +header-y += perf_regs.h header-y += posix_types_32.h header-y += posix_types_64.h header-y += posix_types_x32.h @@ -19,8 +20,10 @@ header-y += prctl.h header-y += processor-flags.h header-y += ptrace-abi.h header-y += sigcontext32.h +header-y += svm.h header-y += ucontext.h header-y += vm86.h +header-y += vmx.h header-y += vsyscall.h genhdr-y += unistd_32.h -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 2/8] tools: Define a Makefile function to do subdir processing 2012-11-24 0:20 ` Arnaldo Carvalho de Melo (?) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, David Howells, Borislav Petkov, Linus Torvalds, Namhyung Kim, Paul Mackerras, Thomas Gleixner, Arnaldo Carvalho de Melo From: David Howells <dhowells@redhat.com> Define a Makefile function that can be called with $(call ...) to wrap the subdir make invocations in tools/Makefile. This will allow us in the next patch to insert bits in there to honour O= flags when called from the top-level Makefile. Signed-off-by: David Howells <dhowells@redhat.com> Cc: Borislav Petkov <bp@amd64.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.uk Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/Makefile | 24 ++++++++++++------------ tools/scripts/Makefile.include | 8 ++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/tools/Makefile b/tools/Makefile index 3ae4394..1f9a529 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -31,44 +31,44 @@ help: @echo ' clean: a summary clean target to clean _all_ folders' cpupower: FORCE - $(QUIET_SUBDIR0)power/$@/ $(QUIET_SUBDIR1) + $(call descend,power/$@) firewire lguest perf usb virtio vm: FORCE - $(QUIET_SUBDIR0)$@/ $(QUIET_SUBDIR1) + $(call descend,$@) selftests: FORCE - $(QUIET_SUBDIR0)testing/$@/ $(QUIET_SUBDIR1) + $(call descend,testing/$@) turbostat x86_energy_perf_policy: FORCE - $(QUIET_SUBDIR0)power/x86/$@/ $(QUIET_SUBDIR1) + $(call descend,power/x86/$@) cpupower_install: - $(QUIET_SUBDIR0)power/$(@:_install=)/ $(QUIET_SUBDIR1) install + $(call descend,power/$(@:_install=),install) firewire_install lguest_install perf_install usb_install virtio_install vm_install: - $(QUIET_SUBDIR0)$(@:_install=)/ $(QUIET_SUBDIR1) install + $(call descend,$(@:_install=),install) selftests_install: - $(QUIET_SUBDIR0)testing/$(@:_clean=)/ $(QUIET_SUBDIR1) install + $(call descend,testing/$(@:_clean=),install) turbostat_install x86_energy_perf_policy_install: - $(QUIET_SUBDIR0)power/x86/$(@:_install=)/ $(QUIET_SUBDIR1) install + $(call descend,power/x86/$(@:_install=),install) install: cpupower_install firewire_install lguest_install perf_install \ selftests_install turbostat_install usb_install virtio_install \ vm_install x86_energy_perf_policy_install cpupower_clean: - $(QUIET_SUBDIR0)power/cpupower/ $(QUIET_SUBDIR1) clean + $(call descend,power/cpupower,clean) firewire_clean lguest_clean perf_clean usb_clean virtio_clean vm_clean: - $(QUIET_SUBDIR0)$(@:_clean=)/ $(QUIET_SUBDIR1) clean + $(call descend,$(@:_clean=),clean) selftests_clean: - $(QUIET_SUBDIR0)testing/$(@:_clean=)/ $(QUIET_SUBDIR1) clean + $(call descend,testing/$(@:_clean=),clean) turbostat_clean x86_energy_perf_policy_clean: - $(QUIET_SUBDIR0)power/x86/$(@:_clean=)/ $(QUIET_SUBDIR1) clean + $(call descend,power/x86/$(@:_clean=),clean) clean: cpupower_clean firewire_clean lguest_clean perf_clean selftests_clean \ turbostat_clean usb_clean virtio_clean vm_clean \ diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 96ce80a..4a9e317 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -41,6 +41,14 @@ else NO_SUBDIR = : endif +# +# Define a callable command for descending to a new directory +# +# Call by doing: $(call descend,directory[,target]) +# +descend = \ + $(QUIET_SUBDIR0)$(1) $(QUIET_SUBDIR1) $(2) + QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir QUIET_SUBDIR1 = -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 3/8] tools: Honour the O= flag when tool build called from a higher Makefile 2012-11-24 0:20 ` Arnaldo Carvalho de Melo ` (2 preceding siblings ...) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, David Howells, Borislav Petkov, Linus Torvalds, Namhyung Kim, Paul Mackerras, Thomas Gleixner, Arnaldo Carvalho de Melo From: David Howells <dhowells@redhat.com> Honour the O= flag that was passed to a higher level Makefile and then passed down as part of a tool build. To make this work, the top-level Makefile passes the original O= flag and subdir=tools to the tools/Makefile, and that in turn passes subdir=$(O)/$(subdir)/foodir when building tool foo in directory $(O)/$(subdir)/foodir (where the intervening slashes aren't added if an element is missing). For example, take perf. This is found in tools/perf/. Assume we're building into directory ~/zebra/, so we pass O=~/zebra to make. Dependening on where we run the build from, we see: make run in dir $(OUTPUT) dir ======================= ================== linux ~/zebra/tools/perf/ linux/tools ~/zebra/perf/ linux/tools/perf ~/zebra/ and if O= is not set, we get: make run in dir $(OUTPUT) dir ======================= ================== linux linux/tools/perf/ linux/tools linux/tools/perf/ linux/tools/perf linux/tools/perf/ The output directories are created by the descend function if they don't already exist. Signed-off-by: David Howells <dhowells@redhat.com> Cc: Borislav Petkov <bp@amd64.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.uk Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- Makefile | 6 ++++-- tools/scripts/Makefile.include | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 42d0e56..71dc31e 100644 --- a/Makefile +++ b/Makefile @@ -1321,10 +1321,12 @@ kernelversion: # Clear a bunch of variables before executing the submake tools/: FORCE - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS= -C $(src)/tools/ + $(Q)mkdir -p $(objtree)/tools + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS= O=$(objtree) subdir=tools -C $(src)/tools/ tools/%: FORCE - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS= -C $(src)/tools/ $* + $(Q)mkdir -p $(objtree)/tools + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS= O=$(objtree) subdir=tools -C $(src)/tools/ $* # Single targets # --------------------------------------------------------------------------- diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 4a9e317..87467b1 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -1,8 +1,11 @@ -ifeq ("$(origin O)", "command line") +ifeq ($(origin O), command line) dummy := $(if $(shell test -d $(O) || echo $(O)),$(error O=$(O) does not exist),) ABSOLUTE_O := $(shell cd $(O) ; pwd) - OUTPUT := $(ABSOLUTE_O)/ + OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/) COMMAND_O := O=$(ABSOLUTE_O) +ifeq ($(objtree),) + objtree := $(O) +endif endif ifneq ($(OUTPUT),) @@ -47,9 +50,10 @@ endif # Call by doing: $(call descend,directory[,target]) # descend = \ - $(QUIET_SUBDIR0)$(1) $(QUIET_SUBDIR1) $(2) + +mkdir -p $(OUTPUT)$(1) && \ + $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) -QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir +QUIET_SUBDIR0 = +$(MAKE) $(COMMAND_O) -C # space to separate -C and subdir QUIET_SUBDIR1 = ifneq ($(findstring $(MAKEFLAGS),s),s) @@ -64,5 +68,10 @@ ifndef V $(MAKE) $(PRINT_DIR) -C $$subdir QUIET_FLEX = @echo ' ' FLEX $@; QUIET_BISON = @echo ' ' BISON $@; + + descend = \ + @echo ' ' DESCEND $(1); \ + mkdir -p $(OUTPUT)$(1) && \ + $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) endif endif -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 4/8] tools: Pass the target in descend 2012-11-24 0:20 ` Arnaldo Carvalho de Melo ` (3 preceding siblings ...) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, David Howells, Borislav Petkov, Linus Torvalds, Namhyung Kim, Paul Mackerras, Thomas Gleixner, Arnaldo Carvalho de Melo From: David Howells <dhowells@redhat.com> Fixing: [acme@sandy linux]$ cd tools [acme@sandy tools]$ make clean DESCEND power/cpupower CC lib/cpufreq.o CC lib/sysfs.o LD libcpupower.so.0.0.0 CC utils/helpers/amd.o utils/helpers/amd.c:7:21: error: pci/pci.h: No such file or directory In file included from utils/helpers/amd.c:9: ./utils/helpers/helpers.h:137: warning: ‘struct pci_access’ declared inside parameter list ./utils/helpers/helpers.h:137: warning: its scope is only this definition or declaration, which is probably not what you want ./utils/helpers/helpers.h:139: warning: ‘struct pci_access’ declared inside parameter list utils/helpers/amd.c: In function ‘amd_pci_get_num_boost_states’: utils/helpers/amd.c:120: warning: passing argument 1 of ‘pci_slot_func_init’ from incompatible pointer type ./utils/helpers/helpers.h:138: note: expected ‘struct pci_access **’ but argument is of type ‘struct pci_access **’ utils/helpers/amd.c:125: warning: implicit declaration of function ‘pci_read_byte’ utils/helpers/amd.c:132: warning: implicit declaration of function ‘pci_cleanup’ make[1]: *** [utils/helpers/amd.o] Error 1 make: *** [cpupower_clean] Error 2 [acme@sandy tools]$ Reported-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David Howells <dhowells@redhat.com> Cc: Borislav Petkov <bp@amd64.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/n/tip-tviyimq6x6nm77sj5lt4t19f@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/scripts/Makefile.include | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 87467b1..2964b96 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -51,7 +51,7 @@ endif # descend = \ +mkdir -p $(OUTPUT)$(1) && \ - $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) + $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) $(2) QUIET_SUBDIR0 = +$(MAKE) $(COMMAND_O) -C # space to separate -C and subdir QUIET_SUBDIR1 = @@ -72,6 +72,6 @@ ifndef V descend = \ @echo ' ' DESCEND $(1); \ mkdir -p $(OUTPUT)$(1) && \ - $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) + $(MAKE) $(COMMAND_O) subdir=$(if $(subdir),$(subdir)/$(1),$(1)) $(PRINT_DIR) -C $(1) $(2) endif endif -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 5/8] perf powerpc: Use uapi/unistd.h to fix build error 2012-11-24 0:20 ` Arnaldo Carvalho de Melo @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: Peter Zijlstra, Robert Richter, Anton Blanchard, linux-kernel, Arnaldo Carvalho de Melo, linuxppc-dev, Ingo Molnar, Paul Mackerras, Sukadev Bhattiprolu From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Use the 'unistd.h' from arch/powerpc/include/uapi to build the perf tool. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Acked-by: David Howells <dhowells@redhat.com> Cc: Anton Blanchard <anton@au1.ibm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Robert Richter <robert.richter@amd.com> Cc: linuxppc-dev@ozlabs.org Link: http://lkml.kernel.org/r/20121107191818.GA16211@us.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/perf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/perf.h b/tools/perf/perf.h index c50985e..e2ba8f0 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h @@ -26,7 +26,7 @@ void get_term_dimensions(struct winsize *ws); #endif #ifdef __powerpc__ -#include "../../arch/powerpc/include/asm/unistd.h" +#include "../../arch/powerpc/include/uapi/asm/unistd.h" #define rmb() asm volatile ("sync" ::: "memory") #define cpu_relax() asm volatile ("" ::: "memory"); #define CPUINFO_PROC "cpu" -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 5/8] perf powerpc: Use uapi/unistd.h to fix build error @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Sukadev Bhattiprolu, Anton Blanchard, Ingo Molnar, Paul Mackerras, Peter Zijlstra, Robert Richter, linuxppc-dev, Arnaldo Carvalho de Melo From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Use the 'unistd.h' from arch/powerpc/include/uapi to build the perf tool. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Acked-by: David Howells <dhowells@redhat.com> Cc: Anton Blanchard <anton@au1.ibm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Robert Richter <robert.richter@amd.com> Cc: linuxppc-dev@ozlabs.org Link: http://lkml.kernel.org/r/20121107191818.GA16211@us.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/perf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/perf.h b/tools/perf/perf.h index c50985e..e2ba8f0 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h @@ -26,7 +26,7 @@ void get_term_dimensions(struct winsize *ws); #endif #ifdef __powerpc__ -#include "../../arch/powerpc/include/asm/unistd.h" +#include "../../arch/powerpc/include/uapi/asm/unistd.h" #define rmb() asm volatile ("sync" ::: "memory") #define cpu_relax() asm volatile ("" ::: "memory"); #define CPUINFO_PROC "cpu" -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 6/8] perf: Make perf build for x86 with UAPI disintegration applied 2012-11-24 0:20 ` Arnaldo Carvalho de Melo ` (5 preceding siblings ...) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, David Howells From: David Howells <dhowells@redhat.com> Make perf build for x86 once the UAPI disintegration patches for that arch have been applied by adding the appropriate -I flags - in the right order - and then converting some #includes that use ../.. notation to find main kernel headerfiles to use <asm/foo.h> and <linux/foo.h> instead. Note that -Iarch/foo/include/uapi is present _before_ -Iarch/foo/include. This makes sure we get the userspace version of the pt_regs struct. Ideally, we wouldn't have the latter -I flag at all, but unfortunately we want asm/svm.h and asm/vmx.h in builtin-kvm.c and these aren't part of the UAPI - at least not for x86. I wonder if the bits outside of the __KERNEL__ guards *should* be transferred there. I note also that perf seems to do its dependency handling manually by listing all the header files it might want to use in LIB_H in the Makefile. Can this be changed to use -MD? Note that to do make this work, we need to export and UAPI disintegrate linux/hw_breakpoint.h, which I think should've been exported previously so that perf can access the bits. We have to do this in the same patch to maintain bisectability. Signed-off-by: David Howells <dhowells@redhat.com> --- include/linux/hw_breakpoint.h | 31 +------------------------------ include/uapi/linux/Kbuild | 1 + include/uapi/linux/hw_breakpoint.h | 30 ++++++++++++++++++++++++++++++ tools/perf/Makefile | 29 ++++++++++++++++++++++++++++- tools/perf/arch/x86/include/perf_regs.h | 2 +- tools/perf/builtin-kvm.c | 6 +++--- tools/perf/builtin-test.c | 2 +- tools/perf/perf.h | 16 +++------------- tools/perf/util/evsel.c | 4 ++-- tools/perf/util/evsel.h | 3 ++- tools/perf/util/header.h | 2 +- tools/perf/util/parse-events-test.c | 2 +- tools/perf/util/parse-events.c | 2 +- tools/perf/util/parse-events.h | 2 +- tools/perf/util/pmu.h | 2 +- tools/perf/util/session.h | 2 +- 16 files changed, 78 insertions(+), 58 deletions(-) create mode 100644 include/uapi/linux/hw_breakpoint.h diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 6ae9c63..0464c85 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h @@ -1,35 +1,8 @@ #ifndef _LINUX_HW_BREAKPOINT_H #define _LINUX_HW_BREAKPOINT_H -enum { - HW_BREAKPOINT_LEN_1 = 1, - HW_BREAKPOINT_LEN_2 = 2, - HW_BREAKPOINT_LEN_4 = 4, - HW_BREAKPOINT_LEN_8 = 8, -}; - -enum { - HW_BREAKPOINT_EMPTY = 0, - HW_BREAKPOINT_R = 1, - HW_BREAKPOINT_W = 2, - HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, - HW_BREAKPOINT_X = 4, - HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, -}; - -enum bp_type_idx { - TYPE_INST = 0, -#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS - TYPE_DATA = 0, -#else - TYPE_DATA = 1, -#endif - TYPE_MAX -}; - -#ifdef __KERNEL__ - #include <linux/perf_event.h> +#include <uapi/linux/hw_breakpoint.h> #ifdef CONFIG_HAVE_HW_BREAKPOINT @@ -151,6 +124,4 @@ static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp) } #endif /* CONFIG_HAVE_HW_BREAKPOINT */ -#endif /* __KERNEL__ */ - #endif /* _LINUX_HW_BREAKPOINT_H */ diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index e194387..19e765f 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild @@ -415,3 +415,4 @@ header-y += wireless.h header-y += x25.h header-y += xattr.h header-y += xfrm.h +header-y += hw_breakpoint.h diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h new file mode 100644 index 0000000..b04000a --- /dev/null +++ b/include/uapi/linux/hw_breakpoint.h @@ -0,0 +1,30 @@ +#ifndef _UAPI_LINUX_HW_BREAKPOINT_H +#define _UAPI_LINUX_HW_BREAKPOINT_H + +enum { + HW_BREAKPOINT_LEN_1 = 1, + HW_BREAKPOINT_LEN_2 = 2, + HW_BREAKPOINT_LEN_4 = 4, + HW_BREAKPOINT_LEN_8 = 8, +}; + +enum { + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, +}; + +enum bp_type_idx { + TYPE_INST = 0, +#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS + TYPE_DATA = 0, +#else + TYPE_DATA = 1, +#endif + TYPE_MAX +}; + +#endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 00deed4d..0a619af 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -169,7 +169,34 @@ endif ### --- END CONFIGURATION SECTION --- -BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include -I$(OUTPUT)util -I$(TRACE_EVENT_DIR) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE +ifeq ($(srctree),) +srctree := $(patsubst %/,%,$(dir $(shell pwd))) +srctree := $(patsubst %/,%,$(dir $(srctree))) +#$(info Determined 'srctree' to be $(srctree)) +endif + +ifneq ($(objtree),) +#$(info Determined 'objtree' to be $(objtree)) +endif + +ifneq ($(OUTPUT),) +#$(info Determined 'OUTPUT' to be $(OUTPUT)) +endif + +BASIC_CFLAGS = \ + -Iutil/include \ + -Iarch/$(ARCH)/include \ + $(if $(objtree),-I$(objtree)/arch/$(ARCH)/include/generated/uapi) \ + -I$(srctree)/arch/$(ARCH)/include/uapi \ + -I$(srctree)/arch/$(ARCH)/include \ + $(if $(objtree),-I$(objtree)/include/generated/uapi) \ + -I$(srctree)/include/uapi \ + -I$(srctree)/include \ + -I$(OUTPUT)util \ + -Iutil \ + -I. \ + -I$(TRACE_EVENT_DIR) \ + -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE BASIC_LDFLAGS = # Guard against environment variables diff --git a/tools/perf/arch/x86/include/perf_regs.h b/tools/perf/arch/x86/include/perf_regs.h index 46fc9f1..7fcdcdb 100644 --- a/tools/perf/arch/x86/include/perf_regs.h +++ b/tools/perf/arch/x86/include/perf_regs.h @@ -3,7 +3,7 @@ #include <stdlib.h> #include "../../util/types.h" -#include "../../../../../arch/x86/include/asm/perf_regs.h" +#include <asm/perf_regs.h> #ifndef ARCH_X86_64 #define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 260abc5..e013bdb 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -22,9 +22,9 @@ #include <pthread.h> #include <math.h> -#include "../../arch/x86/include/asm/svm.h" -#include "../../arch/x86/include/asm/vmx.h" -#include "../../arch/x86/include/asm/kvm.h" +#include <asm/svm.h> +#include <asm/vmx.h> +#include <asm/kvm.h> struct event_key { #define INVALID_KEY (~0ULL) diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c index 484f26c..5acd6e8 100644 --- a/tools/perf/builtin-test.c +++ b/tools/perf/builtin-test.c @@ -15,7 +15,7 @@ #include "util/thread_map.h" #include "util/pmu.h" #include "event-parse.h" -#include "../../include/linux/hw_breakpoint.h" +#include <linux/hw_breakpoint.h> #include <sys/mman.h> diff --git a/tools/perf/perf.h b/tools/perf/perf.h index e2ba8f0..238f923 100644 --- a/tools/perf/perf.h +++ b/tools/perf/perf.h @@ -5,8 +5,9 @@ struct winsize; void get_term_dimensions(struct winsize *ws); +#include <asm/unistd.h> + #if defined(__i386__) -#include "../../arch/x86/include/asm/unistd.h" #define rmb() asm volatile("lock; addl $0,0(%%esp)" ::: "memory") #define cpu_relax() asm volatile("rep; nop" ::: "memory"); #define CPUINFO_PROC "model name" @@ -16,7 +17,6 @@ void get_term_dimensions(struct winsize *ws); #endif #if defined(__x86_64__) -#include "../../arch/x86/include/asm/unistd.h" #define rmb() asm volatile("lfence" ::: "memory") #define cpu_relax() asm volatile("rep; nop" ::: "memory"); #define CPUINFO_PROC "model name" @@ -26,20 +26,17 @@ void get_term_dimensions(struct winsize *ws); #endif #ifdef __powerpc__ -#include "../../arch/powerpc/include/uapi/asm/unistd.h" #define rmb() asm volatile ("sync" ::: "memory") #define cpu_relax() asm volatile ("" ::: "memory"); #define CPUINFO_PROC "cpu" #endif #ifdef __s390__ -#include "../../arch/s390/include/asm/unistd.h" #define rmb() asm volatile("bcr 15,0" ::: "memory") #define cpu_relax() asm volatile("" ::: "memory"); #endif #ifdef __sh__ -#include "../../arch/sh/include/asm/unistd.h" #if defined(__SH4A__) || defined(__SH5__) # define rmb() asm volatile("synco" ::: "memory") #else @@ -50,35 +47,30 @@ void get_term_dimensions(struct winsize *ws); #endif #ifdef __hppa__ -#include "../../arch/parisc/include/asm/unistd.h" #define rmb() asm volatile("" ::: "memory") #define cpu_relax() asm volatile("" ::: "memory"); #define CPUINFO_PROC "cpu" #endif #ifdef __sparc__ -#include "../../arch/sparc/include/uapi/asm/unistd.h" #define rmb() asm volatile("":::"memory") #define cpu_relax() asm volatile("":::"memory") #define CPUINFO_PROC "cpu" #endif #ifdef __alpha__ -#include "../../arch/alpha/include/asm/unistd.h" #define rmb() asm volatile("mb" ::: "memory") #define cpu_relax() asm volatile("" ::: "memory") #define CPUINFO_PROC "cpu model" #endif #ifdef __ia64__ -#include "../../arch/ia64/include/asm/unistd.h" #define rmb() asm volatile ("mf" ::: "memory") #define cpu_relax() asm volatile ("hint @pause" ::: "memory") #define CPUINFO_PROC "model name" #endif #ifdef __arm__ -#include "../../arch/arm/include/asm/unistd.h" /* * Use the __kuser_memory_barrier helper in the CPU helper page. See * arch/arm/kernel/entry-armv.S in the kernel source for details. @@ -89,13 +81,11 @@ void get_term_dimensions(struct winsize *ws); #endif #ifdef __aarch64__ -#include "../../arch/arm64/include/asm/unistd.h" #define rmb() asm volatile("dmb ld" ::: "memory") #define cpu_relax() asm volatile("yield" ::: "memory") #endif #ifdef __mips__ -#include "../../arch/mips/include/asm/unistd.h" #define rmb() asm volatile( \ ".set mips2\n\t" \ "sync\n\t" \ @@ -112,7 +102,7 @@ void get_term_dimensions(struct winsize *ws); #include <sys/types.h> #include <sys/syscall.h> -#include "../../include/uapi/linux/perf_event.h" +#include <linux/perf_event.h> #include "util/types.h" #include <stdbool.h> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 618d411..d144d46 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -18,8 +18,8 @@ #include "cpumap.h" #include "thread_map.h" #include "target.h" -#include "../../../include/linux/hw_breakpoint.h" -#include "../../../include/uapi/linux/perf_event.h" +#include <linux/hw_breakpoint.h> +#include <linux/perf_event.h> #include "perf_regs.h" #define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y)) diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 6f94d6d..d99b476 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -3,7 +3,8 @@ #include <linux/list.h> #include <stdbool.h> -#include "../../../include/uapi/linux/perf_event.h" +#include <stddef.h> +#include <linux/perf_event.h> #include "types.h" #include "xyarray.h" #include "cgroup.h" diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index 879d215..9bc0078 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h @@ -1,7 +1,7 @@ #ifndef __PERF_HEADER_H #define __PERF_HEADER_H -#include "../../../include/uapi/linux/perf_event.h" +#include <linux/perf_event.h> #include <sys/types.h> #include <stdbool.h> #include "types.h" diff --git a/tools/perf/util/parse-events-test.c b/tools/perf/util/parse-events-test.c index 516ecd9..6ef213b 100644 --- a/tools/perf/util/parse-events-test.c +++ b/tools/perf/util/parse-events-test.c @@ -3,7 +3,7 @@ #include "evsel.h" #include "evlist.h" #include "sysfs.h" -#include "../../../include/linux/hw_breakpoint.h" +#include <linux/hw_breakpoint.h> #define TEST_ASSERT_VAL(text, cond) \ do { \ diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 75c7b0f..6b6d03e 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1,4 +1,4 @@ -#include "../../../include/linux/hw_breakpoint.h" +#include <linux/hw_breakpoint.h> #include "util.h" #include "../perf.h" #include "evlist.h" diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index 839230c..2820c40 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h @@ -7,7 +7,7 @@ #include <linux/list.h> #include <stdbool.h> #include "types.h" -#include "../../../include/uapi/linux/perf_event.h" +#include <linux/perf_event.h> #include "types.h" struct list_head; diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h index 39f3aba..fdeb8ac 100644 --- a/tools/perf/util/pmu.h +++ b/tools/perf/util/pmu.h @@ -2,7 +2,7 @@ #define __PMU_H #include <linux/bitops.h> -#include "../../../include/uapi/linux/perf_event.h" +#include <linux/perf_event.h> enum { PERF_PMU_FORMAT_VALUE_CONFIG, diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index dd64261..0eae00a 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -7,7 +7,7 @@ #include "symbol.h" #include "thread.h" #include <linux/rbtree.h> -#include "../../../include/uapi/linux/perf_event.h" +#include <linux/perf_event.h> struct sample_queue; struct ip_callchain; -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 7/8] perf kvm: Rename perf_kvm to perf_kvm_stat 2012-11-24 0:20 ` Arnaldo Carvalho de Melo ` (6 preceding siblings ...) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Xiao Guangrong, Borislav Petkov, David Ahern, David Howells, Dong Hao, Josh Boyer, Linus Torvalds, Namhyung Kim, Paul Mackerras, Runzhen Wang, Thomas Gleixner, linux-arch, x86, Arnaldo Carvalho de Melo From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Then let it only be used in 'perf kvm stat'. Preparatory patch to stop trying to build parts of this tool that for now are only supported on x86. Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Cc: Borislav Petkov <bp@alien8.de> Cc: David Ahern <dsahern@gmail.com> Cc: David Howells <dhowells@redhat.com> Cc: Dong Hao <haodong@linux.vnet.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Runzhen Wang <runzhen@linux.vnet.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-arch@vger.kernel.org Cc: x86@kernel.org Link: http://lkml.kernel.org/r/50A488DD.6090106@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-kvm.c | 111 +++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 51 deletions(-) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index e013bdb..9fa45fa 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -58,7 +58,7 @@ struct kvm_event_key { }; -struct perf_kvm; +struct perf_kvm_stat; struct kvm_events_ops { bool (*is_begin_event)(struct perf_evsel *evsel, @@ -66,7 +66,7 @@ struct kvm_events_ops { struct event_key *key); bool (*is_end_event)(struct perf_evsel *evsel, struct perf_sample *sample, struct event_key *key); - void (*decode_key)(struct perf_kvm *kvm, struct event_key *key, + void (*decode_key)(struct perf_kvm_stat *kvm, struct event_key *key, char decode[20]); const char *name; }; @@ -79,7 +79,7 @@ struct exit_reasons_table { #define EVENTS_BITS 12 #define EVENTS_CACHE_SIZE (1UL << EVENTS_BITS) -struct perf_kvm { +struct perf_kvm_stat { struct perf_tool tool; struct perf_session *session; @@ -146,7 +146,7 @@ static struct exit_reasons_table svm_exit_reasons[] = { SVM_EXIT_REASONS }; -static const char *get_exit_reason(struct perf_kvm *kvm, u64 exit_code) +static const char *get_exit_reason(struct perf_kvm_stat *kvm, u64 exit_code) { int i = kvm->exit_reasons_size; struct exit_reasons_table *tbl = kvm->exit_reasons; @@ -162,7 +162,7 @@ static const char *get_exit_reason(struct perf_kvm *kvm, u64 exit_code) return "UNKNOWN"; } -static void exit_event_decode_key(struct perf_kvm *kvm, +static void exit_event_decode_key(struct perf_kvm_stat *kvm, struct event_key *key, char decode[20]) { @@ -228,7 +228,7 @@ static bool mmio_event_end(struct perf_evsel *evsel, struct perf_sample *sample, return false; } -static void mmio_event_decode_key(struct perf_kvm *kvm __maybe_unused, +static void mmio_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, struct event_key *key, char decode[20]) { @@ -271,7 +271,7 @@ static bool ioport_event_end(struct perf_evsel *evsel, return kvm_entry_event(evsel); } -static void ioport_event_decode_key(struct perf_kvm *kvm __maybe_unused, +static void ioport_event_decode_key(struct perf_kvm_stat *kvm __maybe_unused, struct event_key *key, char decode[20]) { @@ -286,7 +286,7 @@ static struct kvm_events_ops ioport_events = { .name = "IO Port Access" }; -static bool register_kvm_events_ops(struct perf_kvm *kvm) +static bool register_kvm_events_ops(struct perf_kvm_stat *kvm) { bool ret = true; @@ -311,7 +311,7 @@ struct vcpu_event_record { }; -static void init_kvm_event_record(struct perf_kvm *kvm) +static void init_kvm_event_record(struct perf_kvm_stat *kvm) { int i; @@ -360,7 +360,7 @@ static struct kvm_event *kvm_alloc_init_event(struct event_key *key) return event; } -static struct kvm_event *find_create_kvm_event(struct perf_kvm *kvm, +static struct kvm_event *find_create_kvm_event(struct perf_kvm_stat *kvm, struct event_key *key) { struct kvm_event *event; @@ -381,7 +381,7 @@ static struct kvm_event *find_create_kvm_event(struct perf_kvm *kvm, return event; } -static bool handle_begin_event(struct perf_kvm *kvm, +static bool handle_begin_event(struct perf_kvm_stat *kvm, struct vcpu_event_record *vcpu_record, struct event_key *key, u64 timestamp) { @@ -425,7 +425,7 @@ static bool update_kvm_event(struct kvm_event *event, int vcpu_id, return true; } -static bool handle_end_event(struct perf_kvm *kvm, +static bool handle_end_event(struct perf_kvm_stat *kvm, struct vcpu_event_record *vcpu_record, struct event_key *key, u64 timestamp) @@ -486,7 +486,7 @@ struct vcpu_event_record *per_vcpu_record(struct thread *thread, return thread->priv; } -static bool handle_kvm_event(struct perf_kvm *kvm, +static bool handle_kvm_event(struct perf_kvm_stat *kvm, struct thread *thread, struct perf_evsel *evsel, struct perf_sample *sample) @@ -541,7 +541,7 @@ static struct kvm_event_key keys[] = { { NULL, NULL } }; -static bool select_key(struct perf_kvm *kvm) +static bool select_key(struct perf_kvm_stat *kvm) { int i; @@ -577,7 +577,8 @@ static void insert_to_result(struct rb_root *result, struct kvm_event *event, rb_insert_color(&event->rb, result); } -static void update_total_count(struct perf_kvm *kvm, struct kvm_event *event) +static void +update_total_count(struct perf_kvm_stat *kvm, struct kvm_event *event) { int vcpu = kvm->trace_vcpu; @@ -590,7 +591,7 @@ static bool event_is_valid(struct kvm_event *event, int vcpu) return !!get_event_count(event, vcpu); } -static void sort_result(struct perf_kvm *kvm) +static void sort_result(struct perf_kvm_stat *kvm) { unsigned int i; int vcpu = kvm->trace_vcpu; @@ -627,7 +628,7 @@ static void print_vcpu_info(int vcpu) pr_info("VCPU %d:\n\n", vcpu); } -static void print_result(struct perf_kvm *kvm) +static void print_result(struct perf_kvm_stat *kvm) { char decode[20]; struct kvm_event *event; @@ -670,7 +671,8 @@ static int process_sample_event(struct perf_tool *tool, struct machine *machine) { struct thread *thread = machine__findnew_thread(machine, sample->tid); - struct perf_kvm *kvm = container_of(tool, struct perf_kvm, tool); + struct perf_kvm_stat *kvm = container_of(tool, struct perf_kvm_stat, + tool); if (thread == NULL) { pr_debug("problem processing %d event, skipping it.\n", @@ -701,7 +703,7 @@ static int get_cpu_isa(struct perf_session *session) return isa; } -static int read_events(struct perf_kvm *kvm) +static int read_events(struct perf_kvm_stat *kvm) { int ret; @@ -750,7 +752,7 @@ static bool verify_vcpu(int vcpu) return true; } -static int kvm_events_report_vcpu(struct perf_kvm *kvm) +static int kvm_events_report_vcpu(struct perf_kvm_stat *kvm) { int ret = -EINVAL; int vcpu = kvm->trace_vcpu; @@ -798,7 +800,8 @@ static const char * const record_args[] = { _p; \ }) -static int kvm_events_record(struct perf_kvm *kvm, int argc, const char **argv) +static int +kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv) { unsigned int rec_argc, i, j; const char **rec_argv; @@ -821,7 +824,8 @@ static int kvm_events_record(struct perf_kvm *kvm, int argc, const char **argv) return cmd_record(i, rec_argv, NULL); } -static int kvm_events_report(struct perf_kvm *kvm, int argc, const char **argv) +static int +kvm_events_report(struct perf_kvm_stat *kvm, int argc, const char **argv) { const struct option kvm_events_report_options[] = { OPT_STRING(0, "event", &kvm->report_event, "report event", @@ -864,24 +868,36 @@ static void print_kvm_stat_usage(void) printf("\nOtherwise, it is the alias of 'perf stat':\n"); } -static int kvm_cmd_stat(struct perf_kvm *kvm, int argc, const char **argv) +static int kvm_cmd_stat(const char *file_name, int argc, const char **argv) { + struct perf_kvm_stat kvm = { + .file_name = file_name, + + .trace_vcpu = -1, + .report_event = "vmexit", + .sort_key = "sample", + + .exit_reasons = svm_exit_reasons, + .exit_reasons_size = ARRAY_SIZE(svm_exit_reasons), + .exit_reasons_isa = "SVM", + }; + if (argc == 1) { print_kvm_stat_usage(); goto perf_stat; } if (!strncmp(argv[1], "rec", 3)) - return kvm_events_record(kvm, argc - 1, argv + 1); + return kvm_events_record(&kvm, argc - 1, argv + 1); if (!strncmp(argv[1], "rep", 3)) - return kvm_events_report(kvm, argc - 1 , argv + 1); + return kvm_events_report(&kvm, argc - 1 , argv + 1); perf_stat: return cmd_stat(argc, argv, NULL); } -static int __cmd_record(struct perf_kvm *kvm, int argc, const char **argv) +static int __cmd_record(const char *file_name, int argc, const char **argv) { int rec_argc, i = 0, j; const char **rec_argv; @@ -890,7 +906,7 @@ static int __cmd_record(struct perf_kvm *kvm, int argc, const char **argv) rec_argv = calloc(rec_argc + 1, sizeof(char *)); rec_argv[i++] = strdup("record"); rec_argv[i++] = strdup("-o"); - rec_argv[i++] = strdup(kvm->file_name); + rec_argv[i++] = strdup(file_name); for (j = 1; j < argc; j++, i++) rec_argv[i] = argv[j]; @@ -899,7 +915,7 @@ static int __cmd_record(struct perf_kvm *kvm, int argc, const char **argv) return cmd_record(i, rec_argv, NULL); } -static int __cmd_report(struct perf_kvm *kvm, int argc, const char **argv) +static int __cmd_report(const char *file_name, int argc, const char **argv) { int rec_argc, i = 0, j; const char **rec_argv; @@ -908,7 +924,7 @@ static int __cmd_report(struct perf_kvm *kvm, int argc, const char **argv) rec_argv = calloc(rec_argc + 1, sizeof(char *)); rec_argv[i++] = strdup("report"); rec_argv[i++] = strdup("-i"); - rec_argv[i++] = strdup(kvm->file_name); + rec_argv[i++] = strdup(file_name); for (j = 1; j < argc; j++, i++) rec_argv[i] = argv[j]; @@ -917,7 +933,8 @@ static int __cmd_report(struct perf_kvm *kvm, int argc, const char **argv) return cmd_report(i, rec_argv, NULL); } -static int __cmd_buildid_list(struct perf_kvm *kvm, int argc, const char **argv) +static int +__cmd_buildid_list(const char *file_name, int argc, const char **argv) { int rec_argc, i = 0, j; const char **rec_argv; @@ -926,7 +943,7 @@ static int __cmd_buildid_list(struct perf_kvm *kvm, int argc, const char **argv) rec_argv = calloc(rec_argc + 1, sizeof(char *)); rec_argv[i++] = strdup("buildid-list"); rec_argv[i++] = strdup("-i"); - rec_argv[i++] = strdup(kvm->file_name); + rec_argv[i++] = strdup(file_name); for (j = 1; j < argc; j++, i++) rec_argv[i] = argv[j]; @@ -937,20 +954,12 @@ static int __cmd_buildid_list(struct perf_kvm *kvm, int argc, const char **argv) int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused) { - struct perf_kvm kvm = { - .trace_vcpu = -1, - .report_event = "vmexit", - .sort_key = "sample", - - .exit_reasons = svm_exit_reasons, - .exit_reasons_size = ARRAY_SIZE(svm_exit_reasons), - .exit_reasons_isa = "SVM", - }; + const char *file_name; const struct option kvm_options[] = { - OPT_STRING('i', "input", &kvm.file_name, "file", + OPT_STRING('i', "input", &file_name, "file", "Input file name"), - OPT_STRING('o', "output", &kvm.file_name, "file", + OPT_STRING('o', "output", &file_name, "file", "Output file name"), OPT_BOOLEAN(0, "guest", &perf_guest, "Collect guest os data"), @@ -985,32 +994,32 @@ int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused) if (!perf_host) perf_guest = 1; - if (!kvm.file_name) { + if (!file_name) { if (perf_host && !perf_guest) - kvm.file_name = strdup("perf.data.host"); + file_name = strdup("perf.data.host"); else if (!perf_host && perf_guest) - kvm.file_name = strdup("perf.data.guest"); + file_name = strdup("perf.data.guest"); else - kvm.file_name = strdup("perf.data.kvm"); + file_name = strdup("perf.data.kvm"); - if (!kvm.file_name) { + if (!file_name) { pr_err("Failed to allocate memory for filename\n"); return -ENOMEM; } } if (!strncmp(argv[0], "rec", 3)) - return __cmd_record(&kvm, argc, argv); + return __cmd_record(file_name, argc, argv); else if (!strncmp(argv[0], "rep", 3)) - return __cmd_report(&kvm, argc, argv); + return __cmd_report(file_name, argc, argv); else if (!strncmp(argv[0], "diff", 4)) return cmd_diff(argc, argv, NULL); else if (!strncmp(argv[0], "top", 3)) return cmd_top(argc, argv, NULL); else if (!strncmp(argv[0], "buildid-list", 12)) - return __cmd_buildid_list(&kvm, argc, argv); + return __cmd_buildid_list(file_name, argc, argv); else if (!strncmp(argv[0], "stat", 4)) - return kvm_cmd_stat(&kvm, argc, argv); + return kvm_cmd_stat(file_name, argc, argv); else usage_with_options(kvm_usage, kvm_options); -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 8/8] perf kvm: Fix building perf kvm on non x86 arches 2012-11-24 0:20 ` Arnaldo Carvalho de Melo ` (7 preceding siblings ...) (?) @ 2012-11-24 0:20 ` Arnaldo Carvalho de Melo -1 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-11-24 0:20 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, Xiao Guangrong, Borislav Petkov, David Ahern, David Howells, Dong Hao, Josh Boyer, Linus Torvalds, Namhyung Kim, Paul Mackerras, Runzhen Wang, Thomas Gleixner, linux-arch, x86, Arnaldo Carvalho de Melo From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Now, 'perf kvm stat' is only supported on x86, let its code depend on (__x86_64__ || __i386__) to fix building it on other architectures. Reviewed-by: David Howells <dhowells@redhat.com> Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Cc: Borislav Petkov <bp@alien8.de> Cc: David Ahern <dsahern@gmail.com> Cc: David Howells <dhowells@redhat.com> Cc: Dong Hao <haodong@linux.vnet.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Runzhen Wang <runzhen@linux.vnet.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-arch@vger.kernel.org Cc: x86@kernel.org Link: http://lkml.kernel.org/r/50A9EB89.70901@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-kvm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 9fa45fa..283b439 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -22,6 +22,7 @@ #include <pthread.h> #include <math.h> +#if defined(__i386__) || defined(__x86_64__) #include <asm/svm.h> #include <asm/vmx.h> #include <asm/kvm.h> @@ -896,6 +897,7 @@ static int kvm_cmd_stat(const char *file_name, int argc, const char **argv) perf_stat: return cmd_stat(argc, argv, NULL); } +#endif static int __cmd_record(const char *file_name, int argc, const char **argv) { @@ -1018,8 +1020,10 @@ int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused) return cmd_top(argc, argv, NULL); else if (!strncmp(argv[0], "buildid-list", 12)) return __cmd_buildid_list(file_name, argc, argv); +#if defined(__i386__) || defined(__x86_64__) else if (!strncmp(argv[0], "stat", 4)) return kvm_cmd_stat(file_name, argc, argv); +#endif else usage_with_options(kvm_usage, kvm_options); -- 1.7.9.2.358.g22243 ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes 2012-11-24 0:20 ` Arnaldo Carvalho de Melo @ 2012-11-28 20:27 ` Josh Boyer -1 siblings, 0 replies; 27+ messages in thread From: Josh Boyer @ 2012-11-28 20:27 UTC (permalink / raw) To: Ingo Molnar, Thomas Gleixner, Linus Torvalds, Arnaldo Carvalho de Melo Cc: linux-kernel, Arnaldo Carvalho de Melo, Anton Blanchard, Arnaldo Carvalho de Melo, Borislav Petkov, David Ahern, David Howells, Dong Hao, linux-arch, linuxppc-dev, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Robert Richter, Runzhen Wang, Sukadev Bhattiprolu, x86, Xiao Guangrong On Fri, Nov 23, 2012 at 7:20 PM, Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote: > Hi Ingo, > > Tested using a cross-compiler and directly on a Raspberry pi (ARM) with > raspbian. > > Please consider pulling. > > - Arnaldo > > The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077: > > Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo > > for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7: > > perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes > > . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong. > > . UAPI fixes to get perf building again in non-x86 arches, from David Howells. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent > > David Howells (6): > x86: Export asm/{svm.h,vmx.h,perf_regs.h} > Merge branch 'x86-pre-uapi' into perf-uapi > tools: Define a Makefile function to do subdir processing > tools: Honour the O= flag when tool build called from a higher Makefile > tools: Pass the target in descend > perf: Make perf build for x86 with UAPI disintegration applied > > Sukadev Bhattiprolu (1): > perf powerpc: Use uapi/unistd.h to fix build error > > Xiao Guangrong (2): > perf kvm: Rename perf_kvm to perf_kvm_stat > perf kvm: Fix building perf kvm on non x86 arches I probably sound like a broken record at this point, but I've not seen this go into any tip branch, nor is it in Linus' tree. Hopefully this gets pulled before 3.7 is released. josh ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes @ 2012-11-28 20:27 ` Josh Boyer 0 siblings, 0 replies; 27+ messages in thread From: Josh Boyer @ 2012-11-28 20:27 UTC (permalink / raw) To: Ingo Molnar, Thomas Gleixner, Linus Torvalds, Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo, David Howells, linux-arch, Peter Zijlstra, Robert Richter, Namhyung Kim, Anton Blanchard, linux-kernel, Xiao Guangrong, Arnaldo Carvalho de Melo, linuxppc-dev, Dong Hao, Borislav Petkov, David Ahern, Runzhen Wang, Paul Mackerras, x86, Sukadev Bhattiprolu On Fri, Nov 23, 2012 at 7:20 PM, Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote: > Hi Ingo, > > Tested using a cross-compiler and directly on a Raspberry pi (ARM) with > raspbian. > > Please consider pulling. > > - Arnaldo > > The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077: > > Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo > > for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7: > > perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes > > . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong. > > . UAPI fixes to get perf building again in non-x86 arches, from David Howells. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent > > David Howells (6): > x86: Export asm/{svm.h,vmx.h,perf_regs.h} > Merge branch 'x86-pre-uapi' into perf-uapi > tools: Define a Makefile function to do subdir processing > tools: Honour the O= flag when tool build called from a higher Makefile > tools: Pass the target in descend > perf: Make perf build for x86 with UAPI disintegration applied > > Sukadev Bhattiprolu (1): > perf powerpc: Use uapi/unistd.h to fix build error > > Xiao Guangrong (2): > perf kvm: Rename perf_kvm to perf_kvm_stat > perf kvm: Fix building perf kvm on non x86 arches I probably sound like a broken record at this point, but I've not seen this go into any tip branch, nor is it in Linus' tree. Hopefully this gets pulled before 3.7 is released. josh ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes 2012-11-24 0:20 ` Arnaldo Carvalho de Melo @ 2012-12-01 11:05 ` Ingo Molnar -1 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2012-12-01 11:05 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Anton Blanchard, Arnaldo Carvalho de Melo, Borislav Petkov, David Ahern, David Howells, Dong Hao, Josh Boyer, Linus Torvalds, linux-arch, linuxppc-dev, Namhyung Kim, Paul Mackerras, Peter Zijlstra, Robert Richter, Runzhen Wang, Sukadev Bhattiprolu, Thomas Gleixner, x86, Xiao Guangrong, acme * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > Hi Ingo, > > Tested using a cross-compiler and directly on a Raspberry pi (ARM) with > raspbian. > > Please consider pulling. > > - Arnaldo > > The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077: > > Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo > > for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7: > > perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes > > . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong. > > . UAPI fixes to get perf building again in non-x86 arches, from David Howells. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent > > David Howells (6): > x86: Export asm/{svm.h,vmx.h,perf_regs.h} > Merge branch 'x86-pre-uapi' into perf-uapi > tools: Define a Makefile function to do subdir processing > tools: Honour the O= flag when tool build called from a higher Makefile > tools: Pass the target in descend > perf: Make perf build for x86 with UAPI disintegration applied > > Sukadev Bhattiprolu (1): > perf powerpc: Use uapi/unistd.h to fix build error > > Xiao Guangrong (2): > perf kvm: Rename perf_kvm to perf_kvm_stat > perf kvm: Fix building perf kvm on non x86 arches > > Makefile | 6 +- > arch/x86/include/asm/Kbuild | 3 + > include/linux/hw_breakpoint.h | 31 +------- > include/uapi/linux/Kbuild | 1 + > include/uapi/linux/hw_breakpoint.h | 30 ++++++++ > tools/Makefile | 24 +++--- > tools/perf/Makefile | 29 +++++++- > tools/perf/arch/x86/include/perf_regs.h | 2 +- > tools/perf/builtin-kvm.c | 121 +++++++++++++++++-------------- > tools/perf/builtin-test.c | 2 +- > tools/perf/perf.h | 16 +--- > tools/perf/util/evsel.c | 4 +- > tools/perf/util/evsel.h | 3 +- > tools/perf/util/header.h | 2 +- > tools/perf/util/parse-events-test.c | 2 +- > tools/perf/util/parse-events.c | 2 +- > tools/perf/util/parse-events.h | 2 +- > tools/perf/util/pmu.h | 2 +- > tools/perf/util/session.h | 2 +- > tools/scripts/Makefile.include | 23 +++++- > 20 files changed, 181 insertions(+), 126 deletions(-) > create mode 100644 include/uapi/linux/hw_breakpoint.h Pulled, thanks a lot Arnaldo! I'll get this to Linus ASAP. Note: got a conflict with perf/core in tools/perf/Makefile, when merging in tip:master. It appeared to me that perf/core already included all the changes to BASIC_CFLAGS that perf/urgent updated, so I picked the perf/core version. The merged result seems to work fine but please double check it nevertheless. Thanks, Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes @ 2012-12-01 11:05 ` Ingo Molnar 0 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2012-12-01 11:05 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-arch, David Howells, x86, Peter Zijlstra, Robert Richter, Namhyung Kim, Anton Blanchard, linux-kernel, Xiao Guangrong, Arnaldo Carvalho de Melo, linuxppc-dev, Dong Hao, Borislav Petkov, acme, David Ahern, Runzhen Wang, Paul Mackerras, Sukadev Bhattiprolu, Linus Torvalds, Thomas Gleixner * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > Hi Ingo, > > Tested using a cross-compiler and directly on a Raspberry pi (ARM) with > raspbian. > > Please consider pulling. > > - Arnaldo > > The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077: > > Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100) > > are available in the git repository at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo > > for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7: > > perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes > > . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong. > > . UAPI fixes to get perf building again in non-x86 arches, from David Howells. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent > > David Howells (6): > x86: Export asm/{svm.h,vmx.h,perf_regs.h} > Merge branch 'x86-pre-uapi' into perf-uapi > tools: Define a Makefile function to do subdir processing > tools: Honour the O= flag when tool build called from a higher Makefile > tools: Pass the target in descend > perf: Make perf build for x86 with UAPI disintegration applied > > Sukadev Bhattiprolu (1): > perf powerpc: Use uapi/unistd.h to fix build error > > Xiao Guangrong (2): > perf kvm: Rename perf_kvm to perf_kvm_stat > perf kvm: Fix building perf kvm on non x86 arches > > Makefile | 6 +- > arch/x86/include/asm/Kbuild | 3 + > include/linux/hw_breakpoint.h | 31 +------- > include/uapi/linux/Kbuild | 1 + > include/uapi/linux/hw_breakpoint.h | 30 ++++++++ > tools/Makefile | 24 +++--- > tools/perf/Makefile | 29 +++++++- > tools/perf/arch/x86/include/perf_regs.h | 2 +- > tools/perf/builtin-kvm.c | 121 +++++++++++++++++-------------- > tools/perf/builtin-test.c | 2 +- > tools/perf/perf.h | 16 +--- > tools/perf/util/evsel.c | 4 +- > tools/perf/util/evsel.h | 3 +- > tools/perf/util/header.h | 2 +- > tools/perf/util/parse-events-test.c | 2 +- > tools/perf/util/parse-events.c | 2 +- > tools/perf/util/parse-events.h | 2 +- > tools/perf/util/pmu.h | 2 +- > tools/perf/util/session.h | 2 +- > tools/scripts/Makefile.include | 23 +++++- > 20 files changed, 181 insertions(+), 126 deletions(-) > create mode 100644 include/uapi/linux/hw_breakpoint.h Pulled, thanks a lot Arnaldo! I'll get this to Linus ASAP. Note: got a conflict with perf/core in tools/perf/Makefile, when merging in tip:master. It appeared to me that perf/core already included all the changes to BASIC_CFLAGS that perf/urgent updated, so I picked the perf/core version. The merged result seems to work fine but please double check it nevertheless. Thanks, Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* [GIT PULL 0/8] perf/urgent fixes
@ 2013-03-14 12:23 Arnaldo Carvalho de Melo
2013-03-18 9:02 ` Ingo Molnar
0 siblings, 1 reply; 27+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-03-14 12:23 UTC (permalink / raw)
To: Ingo Molnar
Cc: Feng Tang, Srikar Dronamraju, Jack Mitchell, Stephane Eranian,
Oleg Nesterov, linuxppc-dev, Paul Mackerras, Jiri Olsa,
Namhyung Kim, Andi Kleen, Irina Tirdea, Robert Richter,
Vinson Lee, Ingo Molnar, Marcin Slusarz, Arnaldo Carvalho de Melo,
Frederic Weisbecker, Ingo Molnar, Sukadev Bhattiprolu,
Peter Zijlstra, Corey Ashford, Anton Blanchard, Namhyung Kim,
Arnaldo Carvalho de Melo, linux-kernel, Pekka Enberg, David Ahern
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit cb16b91a449afd01b85ec4e59f30449d11c4acd7:
s390: Fix a header dependencies related build error (2013-03-11 10:43:35 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
for you to fetch changes up to d1398ccfec56e54010476efd6a316427d29045a6:
perf tools: Fix LIBNUMA build with glibc 2.12 and older. (2013-03-14 08:06:21 -0300)
----------------------------------------------------------------
perf/urgent fixes:
. perf probe: Fix segfault due to testing the wrong pointer for NULL,
from Ananth N Mavinakayanahalli.
. libtraceevent: Remove hard coded include to /usr/local/include in
Makefile, which causes cross builds to include host header files,
fix from Jack Mitchell.
. perf record: Use the right target interface for synthesizing
threads when --cpu/-C option is used, fix from Jiri Olsa.
. Check if -DFORTIFY_SOURCE=2 is allowed, as gcc 4.7.2 defines
it and then the build is broken when it is redefined in perf,
fix from Marcin Slusarz.
. Fix build with NO_NEWT=1, that can happen explicitely or when
the newt-devel package is not installed, from Michael Ellerman.
. perf/POWER7: Create a sysfs format entry for Power7 events, missing
patch from a patchseries already merged, from Sukadev Bhattiprolu.
. Fix LIBNUMA build with glibc 2.12 and older, from Vinson Lee.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Ananth N Mavinakayanahalli (1):
perf probe: Fix segfault
Jack Mitchell (1):
libtraceevent: Remove hard coded include to /usr/local/include in Makefile
Jiri Olsa (1):
perf record: Fix -C option
Marcin Slusarz (1):
perf tools: check if -DFORTIFY_SOURCE=2 is allowed
Michael Ellerman (2):
perf annotate: Fix build with NO_NEWT=1
perf report: Fix build with NO_NEWT=1
Sukadev Bhattiprolu (1):
perf/POWER7: Create a sysfs format entry for Power7 events
Vinson Lee (1):
perf tools: Fix LIBNUMA build with glibc 2.12 and older.
arch/powerpc/perf/power7-pmu.c | 13 +++++++++++++
tools/lib/traceevent/Makefile | 2 +-
tools/perf/Makefile | 8 +++++++-
tools/perf/bench/bench.h | 24 ++++++++++++++++++++++++
tools/perf/builtin-record.c | 6 ++++--
tools/perf/util/hist.h | 5 +++--
tools/perf/util/strlist.c | 2 +-
7 files changed, 53 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [GIT PULL 0/8] perf/urgent fixes 2013-03-14 12:23 Arnaldo Carvalho de Melo @ 2013-03-18 9:02 ` Ingo Molnar 0 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2013-03-18 9:02 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Feng Tang, Srikar Dronamraju, Jack Mitchell, Stephane Eranian, Oleg Nesterov, linuxppc-dev, Paul Mackerras, Jiri Olsa, Namhyung Kim, Andi Kleen, Irina Tirdea, Robert Richter, Vinson Lee, Ingo Molnar, Marcin Slusarz, Arnaldo Carvalho de Melo, Frederic Weisbecker, Ingo Molnar, Sukadev Bhattiprolu, Peter Zijlstra, Corey Ashford, Anton Blanchard, Namhyung Kim, Arnaldo Carvalho de Melo, linux-kernel, Pekka Enberg, David Ahern * Arnaldo Carvalho de Melo <acme@infradead.org> wrote: > From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> > > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit cb16b91a449afd01b85ec4e59f30449d11c4acd7: > > s390: Fix a header dependencies related build error (2013-03-11 10:43:35 +0100) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo > > for you to fetch changes up to d1398ccfec56e54010476efd6a316427d29045a6: > > perf tools: Fix LIBNUMA build with glibc 2.12 and older. (2013-03-14 08:06:21 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes: > > . perf probe: Fix segfault due to testing the wrong pointer for NULL, > from Ananth N Mavinakayanahalli. > > . libtraceevent: Remove hard coded include to /usr/local/include in > Makefile, which causes cross builds to include host header files, > fix from Jack Mitchell. > > . perf record: Use the right target interface for synthesizing > threads when --cpu/-C option is used, fix from Jiri Olsa. > > . Check if -DFORTIFY_SOURCE=2 is allowed, as gcc 4.7.2 defines > it and then the build is broken when it is redefined in perf, > fix from Marcin Slusarz. > > . Fix build with NO_NEWT=1, that can happen explicitely or when > the newt-devel package is not installed, from Michael Ellerman. > > . perf/POWER7: Create a sysfs format entry for Power7 events, missing > patch from a patchseries already merged, from Sukadev Bhattiprolu. > > . Fix LIBNUMA build with glibc 2.12 and older, from Vinson Lee. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Ananth N Mavinakayanahalli (1): > perf probe: Fix segfault > > Jack Mitchell (1): > libtraceevent: Remove hard coded include to /usr/local/include in Makefile > > Jiri Olsa (1): > perf record: Fix -C option > > Marcin Slusarz (1): > perf tools: check if -DFORTIFY_SOURCE=2 is allowed > > Michael Ellerman (2): > perf annotate: Fix build with NO_NEWT=1 > perf report: Fix build with NO_NEWT=1 > > Sukadev Bhattiprolu (1): > perf/POWER7: Create a sysfs format entry for Power7 events > > Vinson Lee (1): > perf tools: Fix LIBNUMA build with glibc 2.12 and older. > > arch/powerpc/perf/power7-pmu.c | 13 +++++++++++++ > tools/lib/traceevent/Makefile | 2 +- > tools/perf/Makefile | 8 +++++++- > tools/perf/bench/bench.h | 24 ++++++++++++++++++++++++ > tools/perf/builtin-record.c | 6 ++++-- > tools/perf/util/hist.h | 5 +++-- > tools/perf/util/strlist.c | 2 +- > 7 files changed, 53 insertions(+), 7 deletions(-) Pulled, thanks Arnaldo! Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* [GIT PULL 0/8] perf/urgent fixes
@ 2017-10-19 17:45 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 27+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-10-19 17:45 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Alexander Shishkin, Andi Kleen, Changbin Du,
David Ahern, Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa,
Kan Liang, Kim Phillips, Li Zhijian, Namhyung Kim, Peter Zijlstra,
Philip Li, Ravi Bangoria, Taeung Song <treeze.taeun>
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2:
Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +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-4.14-20171019
for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109:
perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- Fix crash in perf_hpp__reset_output_field() (Jiri Olsa)
- Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa)
- Fix closing evsel fd in 'perf stat' (Jin Yao)
- Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian)
- Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim)
- Fix documentation for a inexistent option 'perf record -l' (Taeung Song)
- Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf tools: Add long time reviewers to MAINTAINERS
Jin Yao (1):
perf xyarray: Fix wrong processing when closing evsel fd
Jiri Olsa (3):
perf hists: Fix crash in perf_hpp__reset_output_field()
perf hists: Add extra integrity checks to fmt_free()
perf tools: Check wether the eBPF file exists in event parsing
Li Zhijian (1):
perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu
Namhyung Kim (1):
perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE
Taeung Song (1):
perf record: Fix documentation for a inexistent option '-l'
MAINTAINERS | 2 ++
tools/perf/Documentation/perf-record.txt | 4 ++--
tools/perf/tests/shell/trace+probe_libc_inet_pton.sh | 9 ++++++---
tools/perf/ui/hist.c | 9 ++++++++-
tools/perf/util/parse-events.l | 17 +++++++++++++++--
tools/perf/util/session.c | 2 ++
tools/perf/util/xyarray.h | 4 ++--
7 files changed, 37 insertions(+), 10 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.
[root@seventh 7]# time dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:3.6: Ok
4 alpine:edge: Ok
5 android-ndk:r12b-arm: Ok
6 android-ndk:r15c-arm: Ok
7 archlinux:latest: Ok
8 centos:5: Ok
9 centos:6: Ok
10 centos:7: Ok
11 debian:7: Ok
12 debian:8: Ok
13 debian:9: Ok
14 debian:experimental: Ok
15 debian:experimental-x-arm64: Ok
16 debian:experimental-x-mips: Ok
17 debian:experimental-x-mips64: Ok
18 debian:experimental-x-mipsel: Ok
19 fedora:20: Ok
20 fedora:21: Ok
21 fedora:22: Ok
22 fedora:23: Ok
23 fedora:24: Ok
24 fedora:24-x-ARC-uClibc: FAIL
Problem reported to the ARC toolchain developers, should be
fixed by a new release that is about to be made available as a prebuilt
toolchain.
25 fedora:25: Ok
26 fedora:26: Ok
27 fedora:rawhide: Ok
28 mageia:5: Ok
29 opensuse:42.1: Ok
30 opensuse:42.2: Ok
31 opensuse:42.3: Ok
32 opensuse:tumbleweed: Ok
33 oraclelinux:6: Ok
34 ubuntu:12.04.5: Ok
35 ubuntu:14.04.4: Ok
36 ubuntu:14.04.4-x-linaro-arm64: Ok
37 ubuntu:15.04: Ok
38 ubuntu:16.04: Ok
39 ubuntu:16.04-x-arm: Ok
40 ubuntu:16.04-x-arm64: Ok
41 ubuntu:16.04-x-powerpc: Ok
42 ubuntu:16.04-x-powerpc64: Ok
43 ubuntu:16.04-x-powerpc64el: Ok
44 ubuntu:16.04-x-s390: Ok
45 ubuntu:16.10: Ok
46 ubuntu:17.10: Ok
#
# uname -a
Linux jouet 4.14.0-rc3+ #1 SMP Fri Oct 13 12:21:12 -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: 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: Intel cqm nmi context read : Skip
61: Use vfs_getname probe to get syscall args filenames : Ok
62: probe libc's inet_pton & backtrace it with ping : Ok
63: Check open filename arg using perf trace + vfs_getname: Ok
64: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_slang_O: make NO_SLANG=1
make_install_bin_O: make install-bin
make_no_libbionic_O: make NO_LIBBIONIC=1
make_install_O: make install
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_doc_O: make doc
make_pure_O: make
make_perf_o_O: make perf.o
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libelf_O: make NO_LIBELF=1
make_no_libbpf_O: make NO_LIBBPF=1
make_static_O: make LDFLAGS=-static
make_install_prefix_O: make install prefix=/tmp/krava
make_no_newt_O: make NO_NEWT=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_util_map_o_O: make util/map.o
make_clean_all_O: make clean all
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_help_O: make help
make_no_libnuma_O: make NO_LIBNUMA=1
make_tags_O: make tags
make_debug_O: make DEBUG=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
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 27+ messages in thread* [GIT PULL 0/8] perf/urgent fixes @ 2017-10-19 17:45 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2017-10-19 17:45 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo, Adrian Hunter, Alexander Shishkin, Andi Kleen, Changbin Du, David Ahern, Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa, Kan Liang, Kim Phillips, Li Zhijian, Namhyung Kim, Peter Zijlstra, Philip Li, Ravi Bangoria, Taeung Song, Thomas-Mich Richter, Wang Nan, Arnaldo Carvalho de Melo Hi Ingo, Please consider pulling, - Arnaldo Test results at the end of this message, as usual. The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2: Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +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-4.14-20171019 for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109: perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300) ---------------------------------------------------------------- perf/urgent fixes: - Fix crash in perf_hpp__reset_output_field() (Jiri Olsa) - Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa) - Fix closing evsel fd in 'perf stat' (Jin Yao) - Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian) - Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim) - Fix documentation for a inexistent option 'perf record -l' (Taeung Song) - Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> ---------------------------------------------------------------- Arnaldo Carvalho de Melo (1): perf tools: Add long time reviewers to MAINTAINERS Jin Yao (1): perf xyarray: Fix wrong processing when closing evsel fd Jiri Olsa (3): perf hists: Fix crash in perf_hpp__reset_output_field() perf hists: Add extra integrity checks to fmt_free() perf tools: Check wether the eBPF file exists in event parsing Li Zhijian (1): perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu Namhyung Kim (1): perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE Taeung Song (1): perf record: Fix documentation for a inexistent option '-l' MAINTAINERS | 2 ++ tools/perf/Documentation/perf-record.txt | 4 ++-- tools/perf/tests/shell/trace+probe_libc_inet_pton.sh | 9 ++++++--- tools/perf/ui/hist.c | 9 ++++++++- tools/perf/util/parse-events.l | 17 +++++++++++++++-- tools/perf/util/session.c | 2 ++ tools/perf/util/xyarray.h | 4 ++-- 7 files changed, 37 insertions(+), 10 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. [root@seventh 7]# time dm 1 alpine:3.4: Ok 2 alpine:3.5: Ok 3 alpine:3.6: Ok 4 alpine:edge: Ok 5 android-ndk:r12b-arm: Ok 6 android-ndk:r15c-arm: Ok 7 archlinux:latest: Ok 8 centos:5: Ok 9 centos:6: Ok 10 centos:7: Ok 11 debian:7: Ok 12 debian:8: Ok 13 debian:9: Ok 14 debian:experimental: Ok 15 debian:experimental-x-arm64: Ok 16 debian:experimental-x-mips: Ok 17 debian:experimental-x-mips64: Ok 18 debian:experimental-x-mipsel: Ok 19 fedora:20: Ok 20 fedora:21: Ok 21 fedora:22: Ok 22 fedora:23: Ok 23 fedora:24: Ok 24 fedora:24-x-ARC-uClibc: FAIL Problem reported to the ARC toolchain developers, should be fixed by a new release that is about to be made available as a prebuilt toolchain. 25 fedora:25: Ok 26 fedora:26: Ok 27 fedora:rawhide: Ok 28 mageia:5: Ok 29 opensuse:42.1: Ok 30 opensuse:42.2: Ok 31 opensuse:42.3: Ok 32 opensuse:tumbleweed: Ok 33 oraclelinux:6: Ok 34 ubuntu:12.04.5: Ok 35 ubuntu:14.04.4: Ok 36 ubuntu:14.04.4-x-linaro-arm64: Ok 37 ubuntu:15.04: Ok 38 ubuntu:16.04: Ok 39 ubuntu:16.04-x-arm: Ok 40 ubuntu:16.04-x-arm64: Ok 41 ubuntu:16.04-x-powerpc: Ok 42 ubuntu:16.04-x-powerpc64: Ok 43 ubuntu:16.04-x-powerpc64el: Ok 44 ubuntu:16.04-x-s390: Ok 45 ubuntu:16.10: Ok 46 ubuntu:17.10: Ok # # uname -a Linux jouet 4.14.0-rc3+ #1 SMP Fri Oct 13 12:21:12 -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: 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: Intel cqm nmi context read : Skip 61: Use vfs_getname probe to get syscall args filenames : Ok 62: probe libc's inet_pton & backtrace it with ping : Ok 63: Check open filename arg using perf trace + vfs_getname: Ok 64: Add vfs_getname probe to get syscall args filenames : Ok # $ make -C tools/perf build-test make: Entering directory '/home/acme/git/linux/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . make_install_prefix_slash_O: make install prefix=/tmp/krava/ make_no_slang_O: make NO_SLANG=1 make_install_bin_O: make install-bin make_no_libbionic_O: make NO_LIBBIONIC=1 make_install_O: make install make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 make_no_libperl_O: make NO_LIBPERL=1 make_no_libaudit_O: make NO_LIBAUDIT=1 make_no_backtrace_O: make NO_BACKTRACE=1 make_doc_O: make doc make_pure_O: make make_perf_o_O: make perf.o make_no_auxtrace_O: make NO_AUXTRACE=1 make_no_demangle_O: make NO_DEMANGLE=1 make_no_libelf_O: make NO_LIBELF=1 make_no_libbpf_O: make NO_LIBBPF=1 make_static_O: make LDFLAGS=-static make_install_prefix_O: make install prefix=/tmp/krava make_no_newt_O: make NO_NEWT=1 make_util_pmu_bison_o_O: make util/pmu-bison.o make_util_map_o_O: make util/map.o make_clean_all_O: make clean all make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 make_no_libunwind_O: make NO_LIBUNWIND=1 make_with_babeltrace_O: make LIBBABELTRACE=1 make_with_clangllvm_O: make LIBCLANGLLVM=1 make_no_libpython_O: make NO_LIBPYTHON=1 make_help_O: make help make_no_libnuma_O: make NO_LIBNUMA=1 make_tags_O: make tags make_debug_O: make DEBUG=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 OK make: Leaving directory '/home/acme/git/linux/tools/perf' $ ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes 2017-10-19 17:45 ` Arnaldo Carvalho de Melo @ 2017-10-20 7:16 ` Ingo Molnar -1 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2017-10-20 7:16 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, linux-perf-users, Adrian Hunter, Alexander Shishkin, Andi Kleen, Changbin Du, David Ahern, Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa, Kan Liang, Kim Phillips, Li Zhijian, Namhyung Kim, Peter Zijlstra, Philip Li, Ravi Bangoria, Taeung Song, Thomas-Mich Richter * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > Test results at the end of this message, as usual. > > The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2: > > Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +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-4.14-20171019 > > for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109: > > perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes: > > - Fix crash in perf_hpp__reset_output_field() (Jiri Olsa) > > - Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa) > > - Fix closing evsel fd in 'perf stat' (Jin Yao) > > - Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian) > > - Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim) > > - Fix documentation for a inexistent option 'perf record -l' (Taeung Song) > > - Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > perf tools: Add long time reviewers to MAINTAINERS > > Jin Yao (1): > perf xyarray: Fix wrong processing when closing evsel fd > > Jiri Olsa (3): > perf hists: Fix crash in perf_hpp__reset_output_field() > perf hists: Add extra integrity checks to fmt_free() > perf tools: Check wether the eBPF file exists in event parsing > > Li Zhijian (1): > perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu > > Namhyung Kim (1): > perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE > > Taeung Song (1): > perf record: Fix documentation for a inexistent option '-l' > > MAINTAINERS | 2 ++ > tools/perf/Documentation/perf-record.txt | 4 ++-- > tools/perf/tests/shell/trace+probe_libc_inet_pton.sh | 9 ++++++--- > tools/perf/ui/hist.c | 9 ++++++++- > tools/perf/util/parse-events.l | 17 +++++++++++++++-- > tools/perf/util/session.c | 2 ++ > tools/perf/util/xyarray.h | 4 ++-- > 7 files changed, 37 insertions(+), 10 deletions(-) Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes @ 2017-10-20 7:16 ` Ingo Molnar 0 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2017-10-20 7:16 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, linux-perf-users, Adrian Hunter, Alexander Shishkin, Andi Kleen, Changbin Du, David Ahern, Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa, Kan Liang, Kim Phillips, Li Zhijian, Namhyung Kim, Peter Zijlstra, Philip Li, Ravi Bangoria, Taeung Song, Thomas-Mich Richter, Wang Nan, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > Test results at the end of this message, as usual. > > The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2: > > Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +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-4.14-20171019 > > for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109: > > perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes: > > - Fix crash in perf_hpp__reset_output_field() (Jiri Olsa) > > - Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa) > > - Fix closing evsel fd in 'perf stat' (Jin Yao) > > - Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian) > > - Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim) > > - Fix documentation for a inexistent option 'perf record -l' (Taeung Song) > > - Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (1): > perf tools: Add long time reviewers to MAINTAINERS > > Jin Yao (1): > perf xyarray: Fix wrong processing when closing evsel fd > > Jiri Olsa (3): > perf hists: Fix crash in perf_hpp__reset_output_field() > perf hists: Add extra integrity checks to fmt_free() > perf tools: Check wether the eBPF file exists in event parsing > > Li Zhijian (1): > perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu > > Namhyung Kim (1): > perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE > > Taeung Song (1): > perf record: Fix documentation for a inexistent option '-l' > > MAINTAINERS | 2 ++ > tools/perf/Documentation/perf-record.txt | 4 ++-- > tools/perf/tests/shell/trace+probe_libc_inet_pton.sh | 9 ++++++--- > tools/perf/ui/hist.c | 9 ++++++++- > tools/perf/util/parse-events.l | 17 +++++++++++++++-- > tools/perf/util/session.c | 2 ++ > tools/perf/util/xyarray.h | 4 ++-- > 7 files changed, 37 insertions(+), 10 deletions(-) Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* [GIT PULL 0/8] perf/urgent fixes
@ 2019-02-05 15:07 Arnaldo Carvalho de Melo
2019-02-09 12:15 ` Ingo Molnar
0 siblings, 1 reply; 27+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
To: Ingo Molnar
Cc: Clark Williams, linux-kernel, linux-perf-users,
Arnaldo Carvalho de Melo, Gustavo A . R . Silva, Michael Petlan,
Ravi Bangoria, Tony Jones, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 9dff0aa95a324e262ffb03f425d00e4751f3294e:
perf/core: Don't WARN() for impossible ring-buffer sizes (2019-02-04 08:45:25 +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-5.0-20190205
for you to fetch changes up to 8f2f350cbdb2c2fbff654cb778139144b48a59ba:
perf script python: Add Python3 support to tests/attr.py (2019-02-05 10:31:08 -0300)
----------------------------------------------------------------
perf/urgent fixes:
perf trace:
Arnaldo Carvalho de Melo:
Fix handling of probe:vfs_getname when the probed routine is
inlined in multiple places, fixing the collection of the 'filename'
parameter in open syscalls.
perf test:
Gustavo A. R. Silva:
Fix bitwise operator usage in evsel-tp-sched test, which made tat
test always detect fields as signed.
Jiri Olsa:
Filter out hidden symbols from labels, added in systems where the
annobin plugin is used, such as RHEL8, which, if left in place make
the DWARF unwind 'perf test' to fail on PPC.
Tony Jones:
Fix 'perf_event_attr' tests when building with python3.
perf mem/c2c:
Ravi Bangoria:
Fix perf_mem_events on PowerPC.
tools headers UAPI:
Arnaldo Carvalho de Melo:
Sync linux/in.h copy from the kernel sources, silencing a perf build warning.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
perf clang: Do not use 'return std::move(something)'
tools headers uapi: Sync linux/in.h copy from the kernel sources
perf symbols: Add fallback definitions for GELF_ST_VISIBILITY()
perf trace: Support multiple "vfs_getname" probes
Gustavo A. R. Silva (1):
perf tests evsel-tp-sched: Fix bitwise operator
Jiri Olsa (1):
perf symbols: Filter out hidden symbols from labels
Ravi Bangoria (1):
perf mem/c2c: Fix perf_mem_events to support powerpc
Tony Jones (1):
perf script python: Add Python3 support to tests/attr.py
tools/include/uapi/linux/in.h | 2 +-
tools/perf/Documentation/perf-c2c.txt | 16 ++++++++++++----
tools/perf/Documentation/perf-mem.txt | 2 +-
tools/perf/arch/powerpc/util/Build | 1 +
tools/perf/arch/powerpc/util/mem-events.c | 11 +++++++++++
tools/perf/builtin-trace.c | 25 +++++++++++++++++-------
tools/perf/tests/attr.py | 32 ++++++++++++++++++-------------
tools/perf/tests/evsel-tp-sched.c | 2 +-
tools/perf/util/c++/clang.cpp | 2 +-
tools/perf/util/mem-events.c | 2 +-
tools/perf/util/symbol-elf.c | 23 +++++++++++++++++++++-
11 files changed, 88 insertions(+), 30 deletions(-)
create mode 100644 tools/perf/arch/powerpc/util/mem-events.c
Test results:
The first ones are container based builds of tools/perf with and without libelf
support. Where clang is available, it is also used to build perf with/without
libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
when clang and its devel libraries are installed.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# export PERF_TARBALL=http://192.168.124.1/perf/perf-5.0.0-rc5.tar.xz
# dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0
5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0
6 alpine:3.9 : Ok gcc (Alpine 8.2.0) 8.2.0
7 alpine:edge : Ok gcc (Alpine 8.2.0) 8.2.0
8 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
9 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
10 android-ndk:r12b-arm : Ok gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
11 android-ndk:r15c-arm : Ok gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
12 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
13 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
14 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
15 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502
16 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
17 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2
18 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
19 debian:experimental : Ok gcc (Debian 8.2.0-16) 8.2.0
20 debian:experimental-x-arm64 : Ok gcc (Debian 8.2.0-16) 8.2.0
21 debian:experimental-x-mips : Ok gcc (Debian 8.2.0-16) 8.2.0
22 debian:experimental-x-mips64 : Ok gcc (Debian 8.2.0-16) 8.2.0
23 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
24 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
25 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
26 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
27 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
28 fedora:28 : Ok gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
29 fedora:29 : Ok gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
30 fedora:rawhide : Ok gcc (GCC) 9.0.0 20190119 (Red Hat 9.0.0-0.3)
31 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0
32 mageia:5 : Ok gcc (GCC) 4.9.2
33 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0
34 opensuse:13.2 : Ok gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
35 opensuse:15.0 : Ok gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
36 opensuse:15.1 : Ok gcc (SUSE Linux) 7.4.0
37 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
38 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
39 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
40 opensuse:tumbleweed : Ok gcc (SUSE Linux) 8.2.1 20190103 [gcc-8-branch revision 267549]
41 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
42 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
43 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
44 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
45 ubuntu:14.04.4-x-linaro-arm64 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
46 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
47 ubuntu:16.04-x-arm : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
48 ubuntu:16.04-x-arm64 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
49 ubuntu:16.04-x-powerpc : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
50 ubuntu:16.04-x-powerpc64 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
51 ubuntu:16.04-x-powerpc64el : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
52 ubuntu:16.04-x-s390 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
53 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
54 ubuntu:18.04 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
55 ubuntu:18.04-x-arm : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
56 ubuntu:18.04-x-arm64 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
57 ubuntu:18.04-x-m68k : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
58 ubuntu:18.04-x-powerpc : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
59 ubuntu:18.04-x-powerpc64 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
60 ubuntu:18.04-x-powerpc64el : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
61 ubuntu:18.04-x-riscv64 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
62 ubuntu:18.04-x-s390 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
63 ubuntu:18.04-x-sh4 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
64 ubuntu:18.04-x-sparc64 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
65 ubuntu:18.10 : Ok gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0
66 ubuntu:19.04 : Ok gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
67 ubuntu:19.04-x-alpha : Ok gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
68 ubuntu:19.04-x-hppa : Ok gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
#
# uname -a
Linux quaco 4.20.3-200.fc29.x86_64 #1 SMP Thu Jan 17 15:19:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# git log --oneline -1
8f2f350cbdb2 perf script python: Add Python3 support to tests/attr.py
# perf version --build-options
perf version 5.0.rc5.g8f2f350
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
gtk2: [ on ] # HAVE_GTK2_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Breakpoint accounting : Ok
22: Watchpoint :
22.1: Read Only Watchpoint : Skip
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
23: Number of exit events of a simple workload : Ok
24: Software clock events period values : Ok
25: Object code reading : Ok
26: Sample parsing : Ok
27: Use a dummy software event to keep tracking : Ok
28: Parse with no sample_id_all bit set : Ok
29: Filter hist entries : Ok
30: Lookup mmap thread : Ok
31: Share thread mg : Ok
32: Sort output of hist entries : Ok
33: Cumulate child hist entries : Ok
34: Track with sched_switch : Ok
35: Filter fds with revents mask in a fdarray : Ok
36: Add fd to a fdarray, making it autogrow : Ok
37: kmod_path__parse : Ok
38: Thread map : Ok
39: LLVM search and compile :
39.1: Basic BPF llvm compile : Ok
39.2: kbuild searching : Ok
39.3: Compile source for BPF prologue generation : Ok
39.4: Compile source for BPF relocation : Ok
40: Session topology : Ok
41: BPF filter :
41.1: Basic BPF filtering : Ok
41.2: BPF pinning : Ok
41.3: BPF prologue generation : Ok
41.4: BPF relocation checker : Ok
42: Synthesize thread map : Ok
43: Remove thread map : Ok
44: Synthesize cpu map : Ok
45: Synthesize stat config : Ok
46: Synthesize stat : Ok
47: Synthesize stat round : Ok
48: Synthesize attr update : Ok
49: Event times : Ok
50: Read backward ring buffer : Ok
51: Print cpu map : Ok
52: Probe SDT events : Ok
53: is_printable_array : Ok
54: Print bitmap : Ok
55: perf hooks : Ok
56: builtin clang support : Skip (not compiled in)
57: unit_number__scnprintf : Ok
58: mem2node : Ok
59: x86 rdpmc : Ok
60: Convert perf time to TSC : Ok
61: DWARF unwind : Ok
62: x86 instruction decoder - new instructions : Ok
63: x86 bp modify : Ok
64: probe libc's inet_pton & backtrace it with ping : Ok
65: Use vfs_getname probe to get syscall args filenames : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
67: Check open filename arg using perf trace + vfs_getname: Ok
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_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_pure_O: make
make_doc_O: make doc
make_no_slang_O: make NO_SLANG=1
make_perf_o_O: make perf.o
make_static_O: make LDFLAGS=-static
make_no_libunwind_O: make NO_LIBUNWIND=1
make_clean_all_O: make clean all
make_no_libelf_O: make NO_LIBELF=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_libaudit_O: make NO_LIBAUDIT=1
make_no_demangle_O: make NO_DEMANGLE=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_util_map_o_O: make util/map.o
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_tags_O: make tags
make_no_libbpf_O: make NO_LIBBPF=1
make_install_bin_O: make install-bin
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_install_O: make install
make_install_prefix_O: make install prefix=/tmp/krava
make_no_newt_O: make NO_NEWT=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_libperl_O: make NO_LIBPERL=1
make_debug_O: make DEBUG=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_help_O: make help
make_no_gtk2_O: make NO_GTK2=1
make_no_libbionic_O: make NO_LIBBIONIC=1
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [GIT PULL 0/8] perf/urgent fixes 2019-02-05 15:07 Arnaldo Carvalho de Melo @ 2019-02-09 12:15 ` Ingo Molnar 0 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2019-02-09 12:15 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Clark Williams, linux-kernel, linux-perf-users, Gustavo A . R . Silva, Michael Petlan, Ravi Bangoria, Tony Jones, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > Test results at the end of this message, as usual. > > The following changes since commit 9dff0aa95a324e262ffb03f425d00e4751f3294e: > > perf/core: Don't WARN() for impossible ring-buffer sizes (2019-02-04 08:45:25 +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-5.0-20190205 > > for you to fetch changes up to 8f2f350cbdb2c2fbff654cb778139144b48a59ba: > > perf script python: Add Python3 support to tests/attr.py (2019-02-05 10:31:08 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes: > > perf trace: > > Arnaldo Carvalho de Melo: > > Fix handling of probe:vfs_getname when the probed routine is > inlined in multiple places, fixing the collection of the 'filename' > parameter in open syscalls. > > perf test: > > Gustavo A. R. Silva: > > Fix bitwise operator usage in evsel-tp-sched test, which made tat > test always detect fields as signed. > > Jiri Olsa: > > Filter out hidden symbols from labels, added in systems where the > annobin plugin is used, such as RHEL8, which, if left in place make > the DWARF unwind 'perf test' to fail on PPC. > > Tony Jones: > > Fix 'perf_event_attr' tests when building with python3. > > perf mem/c2c: > > Ravi Bangoria: > > Fix perf_mem_events on PowerPC. > > tools headers UAPI: > > Arnaldo Carvalho de Melo: > > Sync linux/in.h copy from the kernel sources, silencing a perf build warning. > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (4): > perf clang: Do not use 'return std::move(something)' > tools headers uapi: Sync linux/in.h copy from the kernel sources > perf symbols: Add fallback definitions for GELF_ST_VISIBILITY() > perf trace: Support multiple "vfs_getname" probes > > Gustavo A. R. Silva (1): > perf tests evsel-tp-sched: Fix bitwise operator > > Jiri Olsa (1): > perf symbols: Filter out hidden symbols from labels > > Ravi Bangoria (1): > perf mem/c2c: Fix perf_mem_events to support powerpc > > Tony Jones (1): > perf script python: Add Python3 support to tests/attr.py > > tools/include/uapi/linux/in.h | 2 +- > tools/perf/Documentation/perf-c2c.txt | 16 ++++++++++++---- > tools/perf/Documentation/perf-mem.txt | 2 +- > tools/perf/arch/powerpc/util/Build | 1 + > tools/perf/arch/powerpc/util/mem-events.c | 11 +++++++++++ > tools/perf/builtin-trace.c | 25 +++++++++++++++++------- > tools/perf/tests/attr.py | 32 ++++++++++++++++++------------- > tools/perf/tests/evsel-tp-sched.c | 2 +- > tools/perf/util/c++/clang.cpp | 2 +- > tools/perf/util/mem-events.c | 2 +- > tools/perf/util/symbol-elf.c | 23 +++++++++++++++++++++- > 11 files changed, 88 insertions(+), 30 deletions(-) > create mode 100644 tools/perf/arch/powerpc/util/mem-events.c Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
* [GIT PULL 0/8] perf/urgent fixes
@ 2019-07-08 15:41 Arnaldo Carvalho de Melo
2019-07-08 21:50 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 27+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-07-08 15:41 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner
Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
linux-perf-users, Arnaldo Carvalho de Melo,
David Carrillo Cisneros, Konstantin Kharlamov, Seeteena Thoufeek,
Song Liu, Wei Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, I did a git merge with torvalds/master
late last week to fixup some kernel headers ABI sync warnings, but I had
to cherry pick some csets from my perf/core branch to get the container
builds to all work, so ended up slipping past v5.2, oh well, but here it
is, all containers building ok, I'll now test perf/core to then push
that too.
Best regards,
- Arnaldo
Test results at the end of this message, as usual.
- Arnaldo
The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d:
Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708
for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204:
tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300)
----------------------------------------------------------------
perf/urgent fixes:
core:
Arnaldo Carvalho de Melo:
- Allow references to thread objects after__machine_exit(), fixing a bug with
'perf sched lat' where that happens, i.e. after perf_session__delete() we
still have references to threads that were in a linked list whose head was
freed in perf_session__delete(), causing a segfault, fix it.
Jiri Olsa:
- Do not rely on errno values for precise_ip fallback, fixing the default
use case for 'perf record' on some AMD servers, when no events are specified
and we try to use "cycles:P", i.e. with the maximum precision level.
BPF:
Song Liu:
- Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug
when using pipe mode, i.e. 'perf record -o -'.
tools headers:
Arnaldo Carvalho de Melo:
- Sync kvm headers with the kernel sources
perf tests:
Seeteena Thoufeek:
- Fix record+probe_libc_inet_pton.sh for powerpc64, where without the
debuginfo package for the 'ping' utility we can't resolve its symbols,
so admit getting "[unknown]" for that backtrace line.
perf python:
Arnaldo Carvalho de Melo:
- Remove -fstack-protector-strong if clang doesn't have it, fixing the build
with clang on fedora:30, oracleline:7, centos:7.
perf jvmti:
Jiri Olsa:
- Address gcc string overflow warning for strncpy()
build:
Arnaldo Carvalho de Melo:
- Check if gettid() is available before providing helper, as recent
versions of glibc started to provide gettid().
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (5):
tools arch kvm: Sync kvm headers with the kernel sources
perf thread: Allow references to thread objects after machine__exit()
perf annotate TUI browser: Do not use member from variable within its own initialization
perf python: Remove -fstack-protector-strong if clang doesn't have it
tools build: Check if gettid() is available before providing helper
Jiri Olsa (2):
perf evsel: Do not rely on errno values for precise_ip fallback
perf jvmti: Address gcc string overflow warning for strncpy()
Seeteena Thoufeek (1):
perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
Song Liu (1):
perf header: Assign proper ff->ph in perf_event__synthesize_features()
tools/arch/arm64/include/uapi/asm/kvm.h | 7 +++++
tools/arch/x86/include/uapi/asm/kvm.h | 31 +++++++++++++++-------
tools/build/Makefile.feature | 1 +
tools/build/feature/Makefile | 4 +++
tools/build/feature/test-all.c | 5 ++++
tools/build/feature/test-gettid.c | 11 ++++++++
tools/perf/Makefile.config | 4 +++
tools/perf/jvmti/jvmti_agent.c | 2 ++
tools/perf/jvmti/libjvmti.c | 4 +--
.../tests/shell/record+probe_libc_inet_pton.sh | 2 +-
tools/perf/ui/browsers/annotate.c | 5 ++--
tools/perf/util/evsel.c | 10 ++-----
tools/perf/util/header.c | 1 +
tools/perf/util/machine.c | 25 +++++++++++++++--
tools/perf/util/setup.py | 2 ++
tools/perf/util/thread.c | 23 +++++++++++++---
16 files changed, 109 insertions(+), 28 deletions(-)
create mode 100644 tools/build/feature/test-gettid.c
Test results:
The first ones are container based builds of tools/perf with and without libelf
support. Where clang is available, it is also used to build perf with/without
libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
when clang and its devel libraries are installed.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
The '41: BPF filter' 'perf test' entry is being investigated, it
shouldn't be with "Skip" status, some problem with BPF maps.
$ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz
$ dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final)
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final)
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final)
4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0)
5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1)
6 alpine:3.9 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1)
7 alpine:3.10 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0)
8 alpine:edge : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1)
9 amazonlinux:1 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final)
10 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2)
11 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
12 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
13 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
14 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
15 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
16 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final)
17 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
18 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final)
19 debian:experimental : Ok gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final)
20 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
21 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
22 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0
23 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
24 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
25 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final)
26 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final)
27 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final)
28 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final)
30 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final)
31 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final)
32 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final)
33 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29)
34 fedora:30 : Ok gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30)
35 fedora:30-x-ARC-glibc : Ok arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225
36 fedora:30-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225
37 fedora:31 : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
38 fedora:rawhide : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
39 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0
40 mageia:5 : Ok gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final)
41 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final)
42 mageia:7 : Ok gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7)
43 manjaro:latest : Ok gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final)
44 openmandriva:cooker : Ok gcc (GCC) 9.1.1 20190622 (OpenMandriva)
45 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548)
46 opensuse:15.1 : Ok gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238)
47 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553)
48 opensuse:tumbleweed : Ok gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365)
49 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
50 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
51 ubuntu:12.04 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
52 ubuntu:14.04 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
53 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
54 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
55 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
56 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
57 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
58 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
59 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
60 ubuntu:18.04 : Ok gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
61 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
62 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
63 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
64 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
65 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
66 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
67 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
68 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
69 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
70 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
71 ubuntu:18.10 : Ok gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final)
72 ubuntu:19.04 : Ok gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final)
73 ubuntu:19.04-x-alpha : Ok alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
74 ubuntu:19.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0
75 ubuntu:19.04-x-hppa : Ok hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
76 ubuntu:19.10 : Ok gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1)
$
# uname -a
Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux
# git log --oneline -1
05c78468a60f tools build: Check if gettid() is available before providing helper
# perf version --build-options
perf version 5.2.rc7.g05c784
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
gtk2: [ on ] # HAVE_GTK2_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
aio: [ on ] # HAVE_AIO_SUPPORT
zstd: [ on ] # HAVE_ZSTD_SUPPORT
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Breakpoint accounting : Ok
22: Watchpoint :
22.1: Read Only Watchpoint : Skip
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
23: Number of exit events of a simple workload : Ok
24: Software clock events period values : Ok
25: Object code reading : Ok
26: Sample parsing : Ok
27: Use a dummy software event to keep tracking : Ok
28: Parse with no sample_id_all bit set : Ok
29: Filter hist entries : Ok
30: Lookup mmap thread : Ok
31: Share thread mg : Ok
32: Sort output of hist entries : Ok
33: Cumulate child hist entries : Ok
34: Track with sched_switch : Ok
35: Filter fds with revents mask in a fdarray : Ok
36: Add fd to a fdarray, making it autogrow : Ok
37: kmod_path__parse : Ok
38: Thread map : Ok
39: LLVM search and compile :
39.1: Basic BPF llvm compile : Ok
39.2: kbuild searching : Ok
39.3: Compile source for BPF prologue generation : Ok
39.4: Compile source for BPF relocation : Ok
40: Session topology : Ok
41: BPF filter :
41.1: Basic BPF filtering : Skip
41.2: BPF pinning : Skip
41.3: BPF prologue generation : Skip
41.4: BPF relocation checker : Skip
42: Synthesize thread map : Ok
43: Remove thread map : Ok
44: Synthesize cpu map : Ok
45: Synthesize stat config : Ok
46: Synthesize stat : Ok
47: Synthesize stat round : Ok
48: Synthesize attr update : Ok
49: Event times : Ok
50: Read backward ring buffer : Ok
51: Print cpu map : Ok
52: Probe SDT events : Ok
53: is_printable_array : Ok
54: Print bitmap : Ok
55: perf hooks : Ok
56: builtin clang support : Skip (not compiled in)
57: unit_number__scnprintf : Ok
58: mem2node : Ok
59: x86 rdpmc : Ok
60: Convert perf time to TSC : Ok
61: DWARF unwind : Ok
62: x86 instruction decoder - new instructions : Ok
63: x86 bp modify : Ok
64: probe libc's inet_pton & backtrace it with ping : Ok
65: Use vfs_getname probe to get syscall args filenames : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
67: Check open filename arg using perf trace + vfs_getname: Ok
68: Zstd perf.data compression/decompression : Ok
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_help_O: make help
make_perf_o_O: make perf.o
make_pure_O: make
make_no_slang_O: make NO_SLANG=1
make_no_libelf_O: make NO_LIBELF=1
make_debug_O: make DEBUG=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_install_O: make install
make_util_map_o_O: make util/map.o
make_no_gtk2_O: make NO_GTK2=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_clean_all_O: make clean all
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_cscope_O: make cscope
make_tags_O: make tags
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_libbpf_O: make NO_LIBBPF=1
make_static_O: make LDFLAGS=-static
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_newt_O: make NO_NEWT=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_doc_O: make doc
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 NO_LIBZSTD=1
make_install_bin_O: make install-bin
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
^ permalink raw reply [flat|nested] 27+ messages in thread* Re: [GIT PULL 0/8] perf/urgent fixes 2019-07-08 15:41 Arnaldo Carvalho de Melo @ 2019-07-08 21:50 ` Arnaldo Carvalho de Melo 2019-07-08 21:54 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-07-08 21:50 UTC (permalink / raw) To: Ingo Molnar, Thomas Gleixner Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel, linux-perf-users, David Carrillo Cisneros, Konstantin Kharlamov, Seeteena Thoufeek, Song Liu, Wei Li, Arnaldo Carvalho de Melo Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu: > Hi Ingo, > > Please consider pulling, I did a git merge with torvalds/master > late last week to fixup some kernel headers ABI sync warnings, but I had > to cherry pick some csets from my perf/core branch to get the container > builds to all work, so ended up slipping past v5.2, oh well, but here it > is, all containers building ok, I'll now test perf/core to then push > that too. Hi Ingo, As requested I merged tip/perf/core with this branch and now its available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that has only one extra cset: commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent) Author: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Mon Jul 8 13:47:14 2019 -0300 tools arch x86: Sync asm/cpufeatures.h with the with the kernel Best regards, - Arnaldo > Best regards, > > - Arnaldo > > Test results at the end of this message, as usual. > > - Arnaldo > > The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d: > > Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708 > > for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204: > > tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300) > > ---------------------------------------------------------------- > perf/urgent fixes: > > core: > > Arnaldo Carvalho de Melo: > > - Allow references to thread objects after__machine_exit(), fixing a bug with > 'perf sched lat' where that happens, i.e. after perf_session__delete() we > still have references to threads that were in a linked list whose head was > freed in perf_session__delete(), causing a segfault, fix it. > > Jiri Olsa: > > - Do not rely on errno values for precise_ip fallback, fixing the default > use case for 'perf record' on some AMD servers, when no events are specified > and we try to use "cycles:P", i.e. with the maximum precision level. > > BPF: > > Song Liu: > > - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug > when using pipe mode, i.e. 'perf record -o -'. > > tools headers: > > Arnaldo Carvalho de Melo: > > - Sync kvm headers with the kernel sources > > perf tests: > > Seeteena Thoufeek: > > - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the > debuginfo package for the 'ping' utility we can't resolve its symbols, > so admit getting "[unknown]" for that backtrace line. > > perf python: > > Arnaldo Carvalho de Melo: > > - Remove -fstack-protector-strong if clang doesn't have it, fixing the build > with clang on fedora:30, oracleline:7, centos:7. > > perf jvmti: > > Jiri Olsa: > > - Address gcc string overflow warning for strncpy() > > build: > > Arnaldo Carvalho de Melo: > > - Check if gettid() is available before providing helper, as recent > versions of glibc started to provide gettid(). > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (5): > tools arch kvm: Sync kvm headers with the kernel sources > perf thread: Allow references to thread objects after machine__exit() > perf annotate TUI browser: Do not use member from variable within its own initialization > perf python: Remove -fstack-protector-strong if clang doesn't have it > tools build: Check if gettid() is available before providing helper > > Jiri Olsa (2): > perf evsel: Do not rely on errno values for precise_ip fallback > perf jvmti: Address gcc string overflow warning for strncpy() > > Seeteena Thoufeek (1): > perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64 > > Song Liu (1): > perf header: Assign proper ff->ph in perf_event__synthesize_features() > > tools/arch/arm64/include/uapi/asm/kvm.h | 7 +++++ > tools/arch/x86/include/uapi/asm/kvm.h | 31 +++++++++++++++------- > tools/build/Makefile.feature | 1 + > tools/build/feature/Makefile | 4 +++ > tools/build/feature/test-all.c | 5 ++++ > tools/build/feature/test-gettid.c | 11 ++++++++ > tools/perf/Makefile.config | 4 +++ > tools/perf/jvmti/jvmti_agent.c | 2 ++ > tools/perf/jvmti/libjvmti.c | 4 +-- > .../tests/shell/record+probe_libc_inet_pton.sh | 2 +- > tools/perf/ui/browsers/annotate.c | 5 ++-- > tools/perf/util/evsel.c | 10 ++----- > tools/perf/util/header.c | 1 + > tools/perf/util/machine.c | 25 +++++++++++++++-- > tools/perf/util/setup.py | 2 ++ > tools/perf/util/thread.c | 23 +++++++++++++--- > 16 files changed, 109 insertions(+), 28 deletions(-) > create mode 100644 tools/build/feature/test-gettid.c > > Test results: > > The first ones are container based builds of tools/perf with and without libelf > support. Where clang is available, it is also used to build perf with/without > libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang > when clang and its devel libraries are installed. > > The objtool and samples/bpf/ builds are disabled now that I'm switching from > using the sources in a local volume to fetching them from a http server to > build it inside the container, to make it easier to build in a container cluster. > Those will come back later. > > Several are cross builds, the ones with -x-ARCH and the android one, and those > may not have all the features built, due to lack of multi-arch devel packages, > available and being used so far on just a few, like > debian:experimental-x-{arm64,mipsel}. > > The 'perf test' one will perform a variety of tests exercising > tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands > with a variety of command line event specifications to then intercept the > sys_perf_event syscall to check that the perf_event_attr fields are set up as > expected, among a variety of other unit tests. > > Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/ > with a variety of feature sets, exercising the build with an incomplete set of > features as well as with a complete one. It is planned to have it run on each > of the containers mentioned above, using some container orchestration > infrastructure. Get in contact if interested in helping having this in place. > > The '41: BPF filter' 'perf test' entry is being investigated, it > shouldn't be with "Skip" status, some problem with BPF maps. > > $ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz > $ dm > 1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final) > 2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final) > 3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final) > 4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0) > 5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1) > 6 alpine:3.9 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1) > 7 alpine:3.10 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0) > 8 alpine:edge : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1) > 9 amazonlinux:1 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final) > 10 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2) > 11 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) > 12 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) > 13 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55) > 14 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) > 15 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > 16 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final) > 17 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0) > 18 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final) > 19 debian:experimental : Ok gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final) > 20 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > 21 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > 22 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0 > 23 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > 24 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > 25 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final) > 26 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final) > 27 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final) > 28 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 > 29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final) > 30 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final) > 31 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final) > 32 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final) > 33 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29) > 34 fedora:30 : Ok gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30) > 35 fedora:30-x-ARC-glibc : Ok arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225 > 36 fedora:30-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225 > 37 fedora:31 : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31) > 38 fedora:rawhide : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31) > 39 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0 > 40 mageia:5 : Ok gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final) > 41 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final) > 42 mageia:7 : Ok gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7) > 43 manjaro:latest : Ok gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final) > 44 openmandriva:cooker : Ok gcc (GCC) 9.1.1 20190622 (OpenMandriva) > 45 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548) > 46 opensuse:15.1 : Ok gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238) > 47 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553) > 48 opensuse:tumbleweed : Ok gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365) > 49 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1) > 50 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > 51 ubuntu:12.04 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 > 52 ubuntu:14.04 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4) > 53 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) > 54 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 55 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 56 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 57 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 58 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 59 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > 60 ubuntu:18.04 : Ok gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) > 61 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 62 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 63 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 64 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 65 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 66 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 67 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 68 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 69 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 70 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > 71 ubuntu:18.10 : Ok gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final) > 72 ubuntu:19.04 : Ok gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final) > 73 ubuntu:19.04-x-alpha : Ok alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 > 74 ubuntu:19.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0 > 75 ubuntu:19.04-x-hppa : Ok hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 > 76 ubuntu:19.10 : Ok gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1) > $ > > # uname -a > Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux > # git log --oneline -1 > 05c78468a60f tools build: Check if gettid() is available before providing helper > # perf version --build-options > perf version 5.2.rc7.g05c784 > dwarf: [ on ] # HAVE_DWARF_SUPPORT > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT > glibc: [ on ] # HAVE_GLIBC_SUPPORT > gtk2: [ on ] # HAVE_GTK2_SUPPORT > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT > libelf: [ on ] # HAVE_LIBELF_SUPPORT > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT > libperl: [ on ] # HAVE_LIBPERL_SUPPORT > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT > libslang: [ on ] # HAVE_SLANG_SUPPORT > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT > zlib: [ on ] # HAVE_ZLIB_SUPPORT > lzma: [ on ] # HAVE_LZMA_SUPPORT > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT > bpf: [ on ] # HAVE_LIBBPF_SUPPORT > aio: [ on ] # HAVE_AIO_SUPPORT > zstd: [ on ] # HAVE_ZSTD_SUPPORT > # perf test > 1: vmlinux symtab matches kallsyms : Ok > 2: Detect openat syscall event : Ok > 3: Detect openat syscall event on all cpus : Ok > 4: Read samples using the mmap interface : Ok > 5: Test data source output : Ok > 6: Parse event definition strings : Ok > 7: Simple expression parser : Ok > 8: PERF_RECORD_* events & perf_sample fields : Ok > 9: Parse perf pmu format : Ok > 10: DSO data read : Ok > 11: DSO data cache : Ok > 12: DSO data reopen : Ok > 13: Roundtrip evsel->name : Ok > 14: Parse sched tracepoints fields : Ok > 15: syscalls:sys_enter_openat event fields : Ok > 16: Setup struct perf_event_attr : Ok > 17: Match and link multiple hists : Ok > 18: 'import perf' in python : Ok > 19: Breakpoint overflow signal handler : Ok > 20: Breakpoint overflow sampling : Ok > 21: Breakpoint accounting : Ok > 22: Watchpoint : > 22.1: Read Only Watchpoint : Skip > 22.2: Write Only Watchpoint : Ok > 22.3: Read / Write Watchpoint : Ok > 22.4: Modify Watchpoint : Ok > 23: Number of exit events of a simple workload : Ok > 24: Software clock events period values : Ok > 25: Object code reading : Ok > 26: Sample parsing : Ok > 27: Use a dummy software event to keep tracking : Ok > 28: Parse with no sample_id_all bit set : Ok > 29: Filter hist entries : Ok > 30: Lookup mmap thread : Ok > 31: Share thread mg : Ok > 32: Sort output of hist entries : Ok > 33: Cumulate child hist entries : Ok > 34: Track with sched_switch : Ok > 35: Filter fds with revents mask in a fdarray : Ok > 36: Add fd to a fdarray, making it autogrow : Ok > 37: kmod_path__parse : Ok > 38: Thread map : Ok > 39: LLVM search and compile : > 39.1: Basic BPF llvm compile : Ok > 39.2: kbuild searching : Ok > 39.3: Compile source for BPF prologue generation : Ok > 39.4: Compile source for BPF relocation : Ok > 40: Session topology : Ok > 41: BPF filter : > 41.1: Basic BPF filtering : Skip > 41.2: BPF pinning : Skip > 41.3: BPF prologue generation : Skip > 41.4: BPF relocation checker : Skip > 42: Synthesize thread map : Ok > 43: Remove thread map : Ok > 44: Synthesize cpu map : Ok > 45: Synthesize stat config : Ok > 46: Synthesize stat : Ok > 47: Synthesize stat round : Ok > 48: Synthesize attr update : Ok > 49: Event times : Ok > 50: Read backward ring buffer : Ok > 51: Print cpu map : Ok > 52: Probe SDT events : Ok > 53: is_printable_array : Ok > 54: Print bitmap : Ok > 55: perf hooks : Ok > 56: builtin clang support : Skip (not compiled in) > 57: unit_number__scnprintf : Ok > 58: mem2node : Ok > 59: x86 rdpmc : Ok > 60: Convert perf time to TSC : Ok > 61: DWARF unwind : Ok > 62: x86 instruction decoder - new instructions : Ok > 63: x86 bp modify : Ok > 64: probe libc's inet_pton & backtrace it with ping : Ok > 65: Use vfs_getname probe to get syscall args filenames : Ok > 66: Add vfs_getname probe to get syscall args filenames : Ok > 67: Check open filename arg using perf trace + vfs_getname: Ok > 68: Zstd perf.data compression/decompression : Ok > > $ make -C tools/perf build-test > make: Entering directory '/home/acme/git/perf/tools/perf' > - tarpkg: ./tests/perf-targz-src-pkg . > make_help_O: make help > make_perf_o_O: make perf.o > make_pure_O: make > make_no_slang_O: make NO_SLANG=1 > make_no_libelf_O: make NO_LIBELF=1 > make_debug_O: make DEBUG=1 > make_with_clangllvm_O: make LIBCLANGLLVM=1 > make_no_libaudit_O: make NO_LIBAUDIT=1 > make_install_O: make install > make_util_map_o_O: make util/map.o > make_no_gtk2_O: make NO_GTK2=1 > make_util_pmu_bison_o_O: make util/pmu-bison.o > make_install_prefix_slash_O: make install prefix=/tmp/krava/ > make_no_libnuma_O: make NO_LIBNUMA=1 > make_no_libunwind_O: make NO_LIBUNWIND=1 > make_no_libbionic_O: make NO_LIBBIONIC=1 > make_clean_all_O: make clean all > make_no_auxtrace_O: make NO_AUXTRACE=1 > make_no_libperl_O: make NO_LIBPERL=1 > make_no_libpython_O: make NO_LIBPYTHON=1 > make_no_demangle_O: make NO_DEMANGLE=1 > make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 > make_no_backtrace_O: make NO_BACKTRACE=1 > make_cscope_O: make cscope > make_tags_O: make tags > make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 > make_no_libbpf_O: make NO_LIBBPF=1 > make_static_O: make LDFLAGS=-static > make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 > make_no_newt_O: make NO_NEWT=1 > make_with_babeltrace_O: make LIBBABELTRACE=1 > make_doc_O: make doc > 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 NO_LIBZSTD=1 > make_install_bin_O: make install-bin > OK > make: Leaving directory '/home/acme/git/perf/tools/perf' > -- - Arnaldo ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes 2019-07-08 21:50 ` Arnaldo Carvalho de Melo @ 2019-07-08 21:54 ` Arnaldo Carvalho de Melo 2019-07-09 11:23 ` Ingo Molnar 0 siblings, 1 reply; 27+ messages in thread From: Arnaldo Carvalho de Melo @ 2019-07-08 21:54 UTC (permalink / raw) To: Ingo Molnar, Thomas Gleixner Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel, linux-perf-users, David Carrillo Cisneros, Konstantin Kharlamov, Seeteena Thoufeek, Song Liu, Wei Li, Arnaldo Carvalho de Melo Em Mon, Jul 08, 2019 at 06:50:58PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu: > > Hi Ingo, > > > > Please consider pulling, I did a git merge with torvalds/master > > late last week to fixup some kernel headers ABI sync warnings, but I had > > to cherry pick some csets from my perf/core branch to get the container > > builds to all work, so ended up slipping past v5.2, oh well, but here it > > is, all containers building ok, I'll now test perf/core to then push > > that too. > > Hi Ingo, > > As requested I merged tip/perf/core with this branch and now its > available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that > has only one extra cset: > > commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent) > Author: Arnaldo Carvalho de Melo <acme@redhat.com> > Date: Mon Jul 8 13:47:14 2019 -0300 > > tools arch x86: Sync asm/cpufeatures.h with the with the kernel BTW, I ran all the tests as before, same results. - Arnaldo > Best regards, > > - Arnaldo > > > Best regards, > > > > - Arnaldo > > > > Test results at the end of this message, as usual. > > > > - Arnaldo > > > > The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d: > > > > Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700) > > > > are available in the Git repository at: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708 > > > > for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204: > > > > tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300) > > > > ---------------------------------------------------------------- > > perf/urgent fixes: > > > > core: > > > > Arnaldo Carvalho de Melo: > > > > - Allow references to thread objects after__machine_exit(), fixing a bug with > > 'perf sched lat' where that happens, i.e. after perf_session__delete() we > > still have references to threads that were in a linked list whose head was > > freed in perf_session__delete(), causing a segfault, fix it. > > > > Jiri Olsa: > > > > - Do not rely on errno values for precise_ip fallback, fixing the default > > use case for 'perf record' on some AMD servers, when no events are specified > > and we try to use "cycles:P", i.e. with the maximum precision level. > > > > BPF: > > > > Song Liu: > > > > - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug > > when using pipe mode, i.e. 'perf record -o -'. > > > > tools headers: > > > > Arnaldo Carvalho de Melo: > > > > - Sync kvm headers with the kernel sources > > > > perf tests: > > > > Seeteena Thoufeek: > > > > - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the > > debuginfo package for the 'ping' utility we can't resolve its symbols, > > so admit getting "[unknown]" for that backtrace line. > > > > perf python: > > > > Arnaldo Carvalho de Melo: > > > > - Remove -fstack-protector-strong if clang doesn't have it, fixing the build > > with clang on fedora:30, oracleline:7, centos:7. > > > > perf jvmti: > > > > Jiri Olsa: > > > > - Address gcc string overflow warning for strncpy() > > > > build: > > > > Arnaldo Carvalho de Melo: > > > > - Check if gettid() is available before providing helper, as recent > > versions of glibc started to provide gettid(). > > > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > > > ---------------------------------------------------------------- > > Arnaldo Carvalho de Melo (5): > > tools arch kvm: Sync kvm headers with the kernel sources > > perf thread: Allow references to thread objects after machine__exit() > > perf annotate TUI browser: Do not use member from variable within its own initialization > > perf python: Remove -fstack-protector-strong if clang doesn't have it > > tools build: Check if gettid() is available before providing helper > > > > Jiri Olsa (2): > > perf evsel: Do not rely on errno values for precise_ip fallback > > perf jvmti: Address gcc string overflow warning for strncpy() > > > > Seeteena Thoufeek (1): > > perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64 > > > > Song Liu (1): > > perf header: Assign proper ff->ph in perf_event__synthesize_features() > > > > tools/arch/arm64/include/uapi/asm/kvm.h | 7 +++++ > > tools/arch/x86/include/uapi/asm/kvm.h | 31 +++++++++++++++------- > > tools/build/Makefile.feature | 1 + > > tools/build/feature/Makefile | 4 +++ > > tools/build/feature/test-all.c | 5 ++++ > > tools/build/feature/test-gettid.c | 11 ++++++++ > > tools/perf/Makefile.config | 4 +++ > > tools/perf/jvmti/jvmti_agent.c | 2 ++ > > tools/perf/jvmti/libjvmti.c | 4 +-- > > .../tests/shell/record+probe_libc_inet_pton.sh | 2 +- > > tools/perf/ui/browsers/annotate.c | 5 ++-- > > tools/perf/util/evsel.c | 10 ++----- > > tools/perf/util/header.c | 1 + > > tools/perf/util/machine.c | 25 +++++++++++++++-- > > tools/perf/util/setup.py | 2 ++ > > tools/perf/util/thread.c | 23 +++++++++++++--- > > 16 files changed, 109 insertions(+), 28 deletions(-) > > create mode 100644 tools/build/feature/test-gettid.c > > > > Test results: > > > > The first ones are container based builds of tools/perf with and without libelf > > support. Where clang is available, it is also used to build perf with/without > > libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang > > when clang and its devel libraries are installed. > > > > The objtool and samples/bpf/ builds are disabled now that I'm switching from > > using the sources in a local volume to fetching them from a http server to > > build it inside the container, to make it easier to build in a container cluster. > > Those will come back later. > > > > Several are cross builds, the ones with -x-ARCH and the android one, and those > > may not have all the features built, due to lack of multi-arch devel packages, > > available and being used so far on just a few, like > > debian:experimental-x-{arm64,mipsel}. > > > > The 'perf test' one will perform a variety of tests exercising > > tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands > > with a variety of command line event specifications to then intercept the > > sys_perf_event syscall to check that the perf_event_attr fields are set up as > > expected, among a variety of other unit tests. > > > > Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/ > > with a variety of feature sets, exercising the build with an incomplete set of > > features as well as with a complete one. It is planned to have it run on each > > of the containers mentioned above, using some container orchestration > > infrastructure. Get in contact if interested in helping having this in place. > > > > The '41: BPF filter' 'perf test' entry is being investigated, it > > shouldn't be with "Skip" status, some problem with BPF maps. > > > > $ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz > > $ dm > > 1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final) > > 2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final) > > 3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final) > > 4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0) > > 5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1) > > 6 alpine:3.9 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1) > > 7 alpine:3.10 : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0) > > 8 alpine:edge : Ok gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1) > > 9 amazonlinux:1 : Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final) > > 10 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2) > > 11 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) > > 12 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) > > 13 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55) > > 14 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) > > 15 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > > 16 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final) > > 17 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0) > > 18 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final) > > 19 debian:experimental : Ok gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final) > > 20 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > > 21 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > > 22 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0 > > 23 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0 > > 24 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > > 25 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final) > > 26 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final) > > 27 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final) > > 28 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 > > 29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final) > > 30 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final) > > 31 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final) > > 32 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final) > > 33 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29) > > 34 fedora:30 : Ok gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30) > > 35 fedora:30-x-ARC-glibc : Ok arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225 > > 36 fedora:30-x-ARC-uClibc : Ok arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225 > > 37 fedora:31 : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31) > > 38 fedora:rawhide : Ok gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31) > > 39 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0 > > 40 mageia:5 : Ok gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final) > > 41 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final) > > 42 mageia:7 : Ok gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7) > > 43 manjaro:latest : Ok gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final) > > 44 openmandriva:cooker : Ok gcc (GCC) 9.1.1 20190622 (OpenMandriva) > > 45 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548) > > 46 opensuse:15.1 : Ok gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238) > > 47 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553) > > 48 opensuse:tumbleweed : Ok gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365) > > 49 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1) > > 50 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final) > > 51 ubuntu:12.04 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 > > 52 ubuntu:14.04 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4) > > 53 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) > > 54 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 55 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 56 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 57 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 58 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 59 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 > > 60 ubuntu:18.04 : Ok gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) > > 61 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 62 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 63 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 64 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 65 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 66 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 67 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 68 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 69 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 70 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > > 71 ubuntu:18.10 : Ok gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final) > > 72 ubuntu:19.04 : Ok gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final) > > 73 ubuntu:19.04-x-alpha : Ok alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 > > 74 ubuntu:19.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0 > > 75 ubuntu:19.04-x-hppa : Ok hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 > > 76 ubuntu:19.10 : Ok gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1) > > $ > > > > # uname -a > > Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux > > # git log --oneline -1 > > 05c78468a60f tools build: Check if gettid() is available before providing helper > > # perf version --build-options > > perf version 5.2.rc7.g05c784 > > dwarf: [ on ] # HAVE_DWARF_SUPPORT > > dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT > > glibc: [ on ] # HAVE_GLIBC_SUPPORT > > gtk2: [ on ] # HAVE_GTK2_SUPPORT > > syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT > > libbfd: [ on ] # HAVE_LIBBFD_SUPPORT > > libelf: [ on ] # HAVE_LIBELF_SUPPORT > > libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT > > numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT > > libperl: [ on ] # HAVE_LIBPERL_SUPPORT > > libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT > > libslang: [ on ] # HAVE_SLANG_SUPPORT > > libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT > > libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT > > libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT > > zlib: [ on ] # HAVE_ZLIB_SUPPORT > > lzma: [ on ] # HAVE_LZMA_SUPPORT > > get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT > > bpf: [ on ] # HAVE_LIBBPF_SUPPORT > > aio: [ on ] # HAVE_AIO_SUPPORT > > zstd: [ on ] # HAVE_ZSTD_SUPPORT > > # perf test > > 1: vmlinux symtab matches kallsyms : Ok > > 2: Detect openat syscall event : Ok > > 3: Detect openat syscall event on all cpus : Ok > > 4: Read samples using the mmap interface : Ok > > 5: Test data source output : Ok > > 6: Parse event definition strings : Ok > > 7: Simple expression parser : Ok > > 8: PERF_RECORD_* events & perf_sample fields : Ok > > 9: Parse perf pmu format : Ok > > 10: DSO data read : Ok > > 11: DSO data cache : Ok > > 12: DSO data reopen : Ok > > 13: Roundtrip evsel->name : Ok > > 14: Parse sched tracepoints fields : Ok > > 15: syscalls:sys_enter_openat event fields : Ok > > 16: Setup struct perf_event_attr : Ok > > 17: Match and link multiple hists : Ok > > 18: 'import perf' in python : Ok > > 19: Breakpoint overflow signal handler : Ok > > 20: Breakpoint overflow sampling : Ok > > 21: Breakpoint accounting : Ok > > 22: Watchpoint : > > 22.1: Read Only Watchpoint : Skip > > 22.2: Write Only Watchpoint : Ok > > 22.3: Read / Write Watchpoint : Ok > > 22.4: Modify Watchpoint : Ok > > 23: Number of exit events of a simple workload : Ok > > 24: Software clock events period values : Ok > > 25: Object code reading : Ok > > 26: Sample parsing : Ok > > 27: Use a dummy software event to keep tracking : Ok > > 28: Parse with no sample_id_all bit set : Ok > > 29: Filter hist entries : Ok > > 30: Lookup mmap thread : Ok > > 31: Share thread mg : Ok > > 32: Sort output of hist entries : Ok > > 33: Cumulate child hist entries : Ok > > 34: Track with sched_switch : Ok > > 35: Filter fds with revents mask in a fdarray : Ok > > 36: Add fd to a fdarray, making it autogrow : Ok > > 37: kmod_path__parse : Ok > > 38: Thread map : Ok > > 39: LLVM search and compile : > > 39.1: Basic BPF llvm compile : Ok > > 39.2: kbuild searching : Ok > > 39.3: Compile source for BPF prologue generation : Ok > > 39.4: Compile source for BPF relocation : Ok > > 40: Session topology : Ok > > 41: BPF filter : > > 41.1: Basic BPF filtering : Skip > > 41.2: BPF pinning : Skip > > 41.3: BPF prologue generation : Skip > > 41.4: BPF relocation checker : Skip > > 42: Synthesize thread map : Ok > > 43: Remove thread map : Ok > > 44: Synthesize cpu map : Ok > > 45: Synthesize stat config : Ok > > 46: Synthesize stat : Ok > > 47: Synthesize stat round : Ok > > 48: Synthesize attr update : Ok > > 49: Event times : Ok > > 50: Read backward ring buffer : Ok > > 51: Print cpu map : Ok > > 52: Probe SDT events : Ok > > 53: is_printable_array : Ok > > 54: Print bitmap : Ok > > 55: perf hooks : Ok > > 56: builtin clang support : Skip (not compiled in) > > 57: unit_number__scnprintf : Ok > > 58: mem2node : Ok > > 59: x86 rdpmc : Ok > > 60: Convert perf time to TSC : Ok > > 61: DWARF unwind : Ok > > 62: x86 instruction decoder - new instructions : Ok > > 63: x86 bp modify : Ok > > 64: probe libc's inet_pton & backtrace it with ping : Ok > > 65: Use vfs_getname probe to get syscall args filenames : Ok > > 66: Add vfs_getname probe to get syscall args filenames : Ok > > 67: Check open filename arg using perf trace + vfs_getname: Ok > > 68: Zstd perf.data compression/decompression : Ok > > > > $ make -C tools/perf build-test > > make: Entering directory '/home/acme/git/perf/tools/perf' > > - tarpkg: ./tests/perf-targz-src-pkg . > > make_help_O: make help > > make_perf_o_O: make perf.o > > make_pure_O: make > > make_no_slang_O: make NO_SLANG=1 > > make_no_libelf_O: make NO_LIBELF=1 > > make_debug_O: make DEBUG=1 > > make_with_clangllvm_O: make LIBCLANGLLVM=1 > > make_no_libaudit_O: make NO_LIBAUDIT=1 > > make_install_O: make install > > make_util_map_o_O: make util/map.o > > make_no_gtk2_O: make NO_GTK2=1 > > make_util_pmu_bison_o_O: make util/pmu-bison.o > > make_install_prefix_slash_O: make install prefix=/tmp/krava/ > > make_no_libnuma_O: make NO_LIBNUMA=1 > > make_no_libunwind_O: make NO_LIBUNWIND=1 > > make_no_libbionic_O: make NO_LIBBIONIC=1 > > make_clean_all_O: make clean all > > make_no_auxtrace_O: make NO_AUXTRACE=1 > > make_no_libperl_O: make NO_LIBPERL=1 > > make_no_libpython_O: make NO_LIBPYTHON=1 > > make_no_demangle_O: make NO_DEMANGLE=1 > > make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1 > > make_no_backtrace_O: make NO_BACKTRACE=1 > > make_cscope_O: make cscope > > make_tags_O: make tags > > make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1 > > make_no_libbpf_O: make NO_LIBBPF=1 > > make_static_O: make LDFLAGS=-static > > make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 > > make_no_newt_O: make NO_NEWT=1 > > make_with_babeltrace_O: make LIBBABELTRACE=1 > > make_doc_O: make doc > > 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 NO_LIBZSTD=1 > > make_install_bin_O: make install-bin > > OK > > make: Leaving directory '/home/acme/git/perf/tools/perf' > > > > -- > > - Arnaldo -- - Arnaldo ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [GIT PULL 0/8] perf/urgent fixes 2019-07-08 21:54 ` Arnaldo Carvalho de Melo @ 2019-07-09 11:23 ` Ingo Molnar 0 siblings, 0 replies; 27+ messages in thread From: Ingo Molnar @ 2019-07-09 11:23 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Thomas Gleixner, Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel, linux-perf-users, David Carrillo Cisneros, Konstantin Kharlamov, Seeteena Thoufeek, Song Liu, Wei Li, Arnaldo Carvalho de Melo * Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Em Mon, Jul 08, 2019 at 06:50:58PM -0300, Arnaldo Carvalho de Melo escreveu: > > Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu: > > > Hi Ingo, > > > > > > Please consider pulling, I did a git merge with torvalds/master > > > late last week to fixup some kernel headers ABI sync warnings, but I had > > > to cherry pick some csets from my perf/core branch to get the container > > > builds to all work, so ended up slipping past v5.2, oh well, but here it > > > is, all containers building ok, I'll now test perf/core to then push > > > that too. > > > > Hi Ingo, > > > > As requested I merged tip/perf/core with this branch and now its > > available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that > > has only one extra cset: > > > > commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent) > > Author: Arnaldo Carvalho de Melo <acme@redhat.com> > > Date: Mon Jul 8 13:47:14 2019 -0300 > > > > tools arch x86: Sync asm/cpufeatures.h with the with the kernel > > BTW, I ran all the tests as before, same results. Pulled, thanks a lot Arnaldo! Ingo ^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2019-07-09 11:23 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-24 0:20 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
2012-11-24 0:20 ` Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 1/8] x86: Export asm/{svm.h,vmx.h,perf_regs.h} Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 2/8] tools: Define a Makefile function to do subdir processing Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 3/8] tools: Honour the O= flag when tool build called from a higher Makefile Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 4/8] tools: Pass the target in descend Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 5/8] perf powerpc: Use uapi/unistd.h to fix build error Arnaldo Carvalho de Melo
2012-11-24 0:20 ` Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 6/8] perf: Make perf build for x86 with UAPI disintegration applied Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 7/8] perf kvm: Rename perf_kvm to perf_kvm_stat Arnaldo Carvalho de Melo
2012-11-24 0:20 ` [PATCH 8/8] perf kvm: Fix building perf kvm on non x86 arches Arnaldo Carvalho de Melo
2012-11-28 20:27 ` [GIT PULL 0/8] perf/urgent fixes Josh Boyer
2012-11-28 20:27 ` Josh Boyer
2012-12-01 11:05 ` Ingo Molnar
2012-12-01 11:05 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2013-03-14 12:23 Arnaldo Carvalho de Melo
2013-03-18 9:02 ` Ingo Molnar
2017-10-19 17:45 Arnaldo Carvalho de Melo
2017-10-19 17:45 ` Arnaldo Carvalho de Melo
2017-10-20 7:16 ` Ingo Molnar
2017-10-20 7:16 ` Ingo Molnar
2019-02-05 15:07 Arnaldo Carvalho de Melo
2019-02-09 12:15 ` Ingo Molnar
2019-07-08 15:41 Arnaldo Carvalho de Melo
2019-07-08 21:50 ` Arnaldo Carvalho de Melo
2019-07-08 21:54 ` Arnaldo Carvalho de Melo
2019-07-09 11:23 ` Ingo Molnar
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.