Skip to contentSkip to conversation

perf/urgent fixes

GIT PULL New Arnaldo Carvalho de Melo 2 participants 4 messages Mar 24, 2016 – Mar 25, 2016 perf events

lore
Share & tools
lore

Arnaldo Carvalho de Melo

author maintainer
#0 lore raw

Hi Ingo,

Please consider pulling,

- Arnaldo

The following changes since commit 05f5ece76a88a2cd4859bc93f90379733dd8b4a3:

Merge tag 'perf-core-for-mingo-20160323' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-03-24 08:30: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-20160324

for you to fetch changes up to 6a1a77baa7d81c8217ed10ba17a84c5f100343d9:

perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers (2016-03-24 12:28:57 -0300)

----------------------------------------------------------------
perf/urgent fixes:

- Fix detached tarball building due to missing 'perf bench memcpy' headers (Arnaldo Carvalho de Melo)

- Fix tarpkg build test error output redirection (Arnaldo Carvalho de Melo)

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tests: Fix tarpkg build test error output redirection
perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers

 tools/perf/MANIFEST                 | 1 +
 tools/perf/tests/perf-targz-src-pkg | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
author maintainer
#1 lore raw

PATCH 1/2 perf tests: Fix tarpkg build test error output redirection

From: Arnaldo Carvalho de Melo <[email protected]>

So we need to trow away just stdout, leaving stderr to be caught by the build tests infrastructure, so that we can see what went wrong when the tarpkg build test fails:

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
  tests/make:302: recipe for target 'tarpkg' failed
  make[1]: *** [tarpkg] Error 2
  Makefile:102: recipe for target 'build-test' failed
  make: *** [build-test] Error 2
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $ cat tools/perf/tarpkg
  ./tests/perf-targz-src-pkg .
    PERF_VERSION = 4.5.g05f5ec
    PERF_VERSION = 4.5.g05f5ec
  In file included from bench/mem-memcpy-x86-64-asm.S:9:0:
  bench/../../../arch/x86/lib/memcpy_64.S:5:29: fatal error: asm/cpufeatures.h: No such file or directory
  compilation terminated.
  mv: cannot stat ‘bench/.mem-memcpy-x86-64-asm.o.tmp’: No such file or directory
  make[5]: *** [bench/mem-memcpy-x86-64-asm.o] Error 1
  make[5]: *** Waiting for unfinished jobs....
  make[4]: *** [bench] Error 2
  make[4]: *** Waiting for unfinished jobs....
  make[3]: *** [perf-in.o] Error 2
  make[3]: *** Waiting for unfinished jobs....
  make[2]: *** [all] Error 2
  $

So the test flow is:

1. Run: 'make -C tools/perf build-test'

2. One of its tests failed, in this case, the 'tarpkg' one

3. Look at what went wrong, by looking at the output of that test, in tools/perf/tarpkg

Admittedly, this should be shortcircuited to showing what went wrong directly from the 'make build-test' step, but lets first fix this tarpkg one and the problem it spotted, which should be fixed by adding some extra file to the tools/perf/MANIFEST so that detached tarballs continue being self contained and build successfully.

---
 tools/perf/tests/perf-targz-src-pkg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/tests/perf-targz-src-pkg +1 -1
index 238aa3927c71..f2d9c5fe58e0 100755
@@ -15,7 +15,7 @@ TMP_DEST=$(mktemp -d)
 tar xf ${TARBALL} -C $TMP_DEST
 rm -f ${TARBALL}
 cd - > /dev/null
-make -C $TMP_DEST/perf*/tools/perf > /dev/null 2>&1
+make -C $TMP_DEST/perf*/tools/perf > /dev/null
 RC=$?
 rm -rf ${TMP_DEST}
 exit $RC
Signature · 1 line
2.5.5
author maintainer
#2 lore raw

PATCH 2/2 perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers

In reply to Arnaldo Carvalho de Melo

From: Arnaldo Carvalho de Melo <[email protected]>

A change on kernel files included by the 'perf bench memcpy' code grew some new include deps, breaking the detached tarball build:

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
  tests/make:302: recipe for target 'tarpkg' failed
  make[1]: *** [tarpkg] Error 2
  Makefile:102: recipe for target 'build-test' failed
  make: *** [build-test] Error 2
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $ cat tools/perf/tarpkg
  ./tests/perf-targz-src-pkg .
    PERF_VERSION = 4.5.g05f5ec
    PERF_VERSION = 4.5.g05f5ec
  In file included from bench/mem-memcpy-x86-64-asm.S:9:0:
  bench/../../../arch/x86/lib/memcpy_64.S:5:29: fatal error: asm/cpufeatures.h: No such file or directory
  compilation terminated.
  mv: cannot stat ‘bench/.mem-memcpy-x86-64-asm.o.tmp’: No such file or directory
  make[5]: *** [bench/mem-memcpy-x86-64-asm.o] Error 1
  make[5]: *** Waiting for unfinished jobs....
  make[4]: *** [bench] Error 2
  make[4]: *** Waiting for unfinished jobs....
  make[3]: *** [perf-in.o] Error 2
  make[3]: *** Waiting for unfinished jobs....
  make[2]: *** [all] Error 2
  $

Add arch/*/include/asm/*features.h to tools/perf/MANIFEST so that we can continue to use detached tarballs to build perf.

Now it builds ok, doing it manually:

  $ make help | grep perf
    perf-tar-src-pkg    - Build perf-4.5.0.tar source tarball
    perf-targz-src-pkg  - Build perf-4.5.0.tar.gz source tarball
    perf-tarbz2-src-pkg - Build perf-4.5.0.tar.bz2 source tarball
    perf-tarxz-src-pkg  - Build perf-4.5.0.tar.xz source tarball
  $ ls -la perf-4.5.0.tar
  ls: cannot access perf-4.5.0.tar: No such file or directory
  $ make perf-tar-src-pkg
    TAR
    PERF_VERSION = 4.5.g32c25b
  $ ls -la perf-4.5.0.tar
  -rw-rw-r--. 1 acme acme 6318080 Mar 24 11:52 perf-4.5.0.tar
  $ mv perf-4.5.0.tar /tmp
  $ cd /tmp
  $ tar xf perf-4.5.0.tar
  $ cd perf-4.5.0/tools/perf
  $ make > /dev/null
  PERF_VERSION = 4.5.g32c25b
  $ ls -la perf
  -rwxrwxr-x. 1 acme acme 14046416 Mar 24 11:53 perf
  $ ./perf --version
  perf version 4.5.g32c25b
  $ perf bench
  Usage:
	perf bench [<common options>] <collection> <benchmark> [<options>]

# List of all available benchmark collections:

sched: Scheduler and IPC benchmarks
mem: Memory access benchmarks
numa: NUMA scheduling and MM benchmarks
futex: Futex stressing benchmarks
all: All benchmarks

  $ perf bench mem

# List of available benchmarks for collection 'mem':

memcpy: Benchmark for memcpy() functions
memset: Benchmark for memset() functions
all: Run all memory access benchmarks

  $ perf bench mem memcpy
  # Running 'mem/memcpy' benchmark:
  # function 'default' (Default memcpy() provided by glibc)
  # Copying 1MB bytes ...
        15.024038 GB/sec
  # function 'x86-64-unrolled' (unrolled memcpy() in arch/x86/lib/memcpy_64.S)
  # Copying 1MB bytes ...
        17.438616 GB/sec
  # function 'x86-64-movsq' (movsq-based memcpy() in arch/x86/lib/memcpy_64.S)
  # Copying 1MB bytes ...
        25.040064 GB/sec
  # function 'x86-64-movsb' (movsb-based memcpy() in arch/x86/lib/memcpy_64.S)
  # Copying 1MB bytes ...
        25.040064 GB/sec

$

---
 tools/perf/MANIFEST | 1 +
 1 file changed, 1 insertion(+)
tools/perf/MANIFEST +1 -0
index 2e1fa2357528..8c8c6b9ce915 100644
@@ -74,6 +74,7 @@ arch/*/include/uapi/asm/unistd*.h
 arch/*/include/uapi/asm/perf_regs.h
 arch/*/lib/memcpy*.S
 arch/*/lib/memset*.S
+arch/*/include/asm/*features.h
 include/linux/poison.h
 include/linux/hw_breakpoint.h
 include/uapi/linux/perf_event.h
Signature · 1 line
2.5.5
#3 lore raw
In reply to Arnaldo Carvalho de Melo
Quoted 28 lines · Arnaldo Carvalho de Melo

Hi Ingo,

Please consider pulling,

- Arnaldo

The following changes since commit 05f5ece76a88a2cd4859bc93f90379733dd8b4a3:

Merge tag 'perf-core-for-mingo-20160323' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2016-03-24 08:30: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-20160324

for you to fetch changes up to 6a1a77baa7d81c8217ed10ba17a84c5f100343d9:

perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers (2016-03-24 12:28:57 -0300)

----------------------------------------------------------------
perf/urgent fixes:

- Fix detached tarball building due to missing 'perf bench memcpy' headers (Arnaldo Carvalho de Melo)

- Fix tarpkg build test error output redirection (Arnaldo Carvalho de Melo)

Quoted 8 lines

----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tests: Fix tarpkg build test error output redirection
perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers

 tools/perf/MANIFEST                 | 1 +
 tools/perf/tests/perf-targz-src-pkg | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Pulled, thanks a lot Arnaldo!

Ingo