• Ingo Molnar's avatar
    perf tools: Speed up the perf build time by simplifying the perf --version string generation · acddedfb
    Ingo Molnar authored
    Building perf is pretty slow on trees that have a lot of commits
    relative to the nearest Git tag. This slowness manifests itself during
    version string generation:
    
     $ perf stat --null --repeat 3 --sync --pre "rm -f PERF-VERSION-FILE" util/PERF-VERSION-GEN
     PERF_VERSION = 3.7.rc3.1458.g5399b3b
     PERF_VERSION = 3.7.rc3.1458.g5399b3b
     PERF_VERSION = 3.7.rc3.1458.g5399b3b
    
     Performance counter stats for 'util/PERF-VERSION-GEN' (3 runs):
    
           2.857503976 seconds time elapsed                                          ( +-  0.22% )
    
    The build can be even slower than that, when one over NFS volumes.
    
    The reason for the slowness is that util/PERF-VERSION-GEN uses "git
    describe" to generate the string, which has to count the "number of
    commits distance" from the nearest tag - the ".1458." count in the
    output above. For that Git had to extract and decompress 1458 Git
    objects, which takes time and bandwidth.
    
    But this "number of commits" value is mostly irrelevant in practice. We
    either want to know an approximate tag name, or we want to know the
    precise sha1.
    
    So this patch simplifies the version string to:
    
     PERF_VERSION = 3.7.rc3.g5399b3b.dirty
    
    which speeds up the version string generation script by an order of
    magnitude:
    
     $ perf stat --null --repeat 3 --sync --pre "rm -f PERF-VERSION-FILE" util/PERF-VERSION-GEN
     PERF_VERSION = 3.7.rc3.g5399b3b.dirty
     PERF_VERSION = 3.7.rc3.g5399b3b.dirty
     PERF_VERSION = 3.7.rc3.g5399b3b.dirty
    
     Performance counter stats for 'util/PERF-VERSION-GEN' (3 runs):
    
           0.307633559 seconds time elapsed                                          ( +-  0.84% )
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Cc: Andrew Vagin <avagin@openvz.org>
    Cc: Borislav Petkov <bp@amd64.org>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/20121030084600.GB8245@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    acddedfb
PERF-VERSION-GEN 843 Bytes