• Ingo Molnar's avatar
    tools/perf/build: Speed up git-version test on re-make · c72e3f04
    Ingo Molnar authored
    util/PERF-VERSION-GEN is currently executed on every build attempt,
    and this script can take a lot of time on trees that are at a
    significant git-distance from Linus's tree:
    
      $ time util/PERF-VERSION-GEN
    
      real    0m4.343s
      user    0m4.176s
      sys     0m0.140s
    
    It also takes a lot of time if the Git repository is network attached, etc.,
    because the commands it uses:
    
            TAG=$(git describe --abbrev=0 --match "v[0-9].[0-9]*" 2>/dev/null )
    
    has to count commits from the nearest tag and thus has to access (and
    decompress) every git commit blob on the relevant version path.
    
    Even on Linus's tree it takes 0.28 seconds on a fast box to count all the
    commits and get the git version string:
    
      $ time util/PERF-VERSION-GEN
    
      real    0m0.279s
      user    0m0.247s
      sys     0m0.025s
    
    But the version string only has to be regenerated if the git repository's
    head commit changes. So add a dependency of ../../.git/HEAD and touch
    the file every time it's regenerated, so that Make's build rules can
    pick it up and cache the result:
    
      make: `PERF-VERSION-FILE' is up to date.
    
      real    0m0.184s
      user    0m0.117s
      sys     0m0.026s
    
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/n/tip-wvmlrurufuk6mo1ovtNigguT@git.kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    c72e3f04
Makefile 27.2 KB