Skip to content
  • Arnaldo Carvalho de Melo's avatar
    perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers · 6a1a77ba
    Arnaldo Carvalho de Melo authored
    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
      $
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-2c2sncwffuabw58fj1pw86gu@git.kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    6a1a77ba