• Ingo Molnar's avatar
    perf tools: Further speed up the perf build · 0e2af956
    Ingo Molnar authored
    There's another source of overhead in the perf version string generator:
    
       git update-index -q --refresh
    
    ... which will iterate the whole checked out tree. This can be pretty
    slow on NFS volumes, but takes some time even with local SSD disks and a
    fully cached kernel tree:
    
     $ perf stat --null --repeat 3 --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.306999221 seconds time elapsed                                          ( +-  0.56% )
    
    So remove the .dirty differentiator as well - it adds little information
    because locally patched git trees are common, but seldom are the perf
    tools modified.
    
    So a lot of version strings are reported as 'dirty' while in fact they
    are pristine perf builds. For example 99% of my perf builds are not
    patched but the kernel tree is slightly patched, which adds the .dirty
    tag.
    
    Eliminating that tag speeds up version generation by another order of
    magnitude:
    
     $ perf stat --null --repeat 3 --sync --pre "rm -f PERF-VERSION-FILE" util/PERF-VERSION-GEN
     PERF_VERSION = 3.7.rc3.g4b0bd3
     PERF_VERSION = 3.7.rc3.g4b0bd3
     PERF_VERSION = 3.7.rc3.g4b0bd3
    
     Performance counter stats for 'util/PERF-VERSION-GEN' (3 runs):
    
           0.021270923 seconds time elapsed                                          ( +-  1.94% )
    
    (Also clean up some of the comments around this code.)
    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/20121030085441.GC8245@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    0e2af956
PERF-VERSION-GEN 688 Bytes