1. 11 10月, 2013 1 次提交
  2. 09 10月, 2013 1 次提交
    • I
      tools/perf: Fix double/triple-build of the feature detection logic during 'make install' et al · 31f6be65
      Ingo Molnar 提交于
      Linus reported the following perf build system bug:
      
        'Another annoyance during that make was that "make install" seems to
         want to re-make the thing I just built. That's absolutely horrible, [...]'
      
      The thing that got re-built were 'only' the (numerous) feature checks,
      not the whole project - but still it was mighty annoying as the feature
      checks took 9+ seconds even on reasonably fast boxes.
      
      Even with the autodep patches where feature detection is much faster
      it wastes resources, wastes screen real estate and confuses users if
      we execute feature detection twice.
      
      There were two sources for these unnecessary re-builds of the feature
      checks:
      
       - Unnecessary nested invocations of $(MAKE), apparently to be able
         to do conditional compilation dependent on documentation tools
         presence. Use straight dependencies instead, with no nesting.
      
       - A direct invocation of $(MAKE) to rebuild the PERF-VERSION-FILE.
         This is apparently done to be able to include it into the
         Makefile:
      
          -include $(OUTPUT)PERF-VERSION-FILE
      
         but that's entirely pointless for two reasons: 1) the version file
         gets regenerated by the initial build pass anyway, 2) including it
         is futile, given its contents:
      
          #define PERF_VERSION "3.12.rc3.g8510c7"
      
         'make' will interpret that as a comment line...
      
         So just remove this part of the doc-generation logic.
      
      With these things fixed a 'make install' now rebuilds only what is needed.
      
      A repeated 'make install' on an already built tree is super fast now,
      it finishes in under 0.3 seconds:
      
        #
        #  After the patch:
        #
      
        $ time make install
      
        ...
      
        real    0m0.280s
        user    0m0.162s
        sys     0m0.054s
      
      Prior all the autodep changes and prior this fix, a repeat 'make install'
      took 24.1 seconds (!) on the same system:
      
        #
        #  Before the patches:
        #
      
        $ time make install
      
        ...
      
        real    0m24.109s
        user    0m21.171s
        sys     0m2.449s
      
      Which almost entirely was caused by fixable build system fat.
      We are now literally ~86 times faster.
      
      A fresh rebuild and install now takes just 11.4 seconds:
      
        #
        #  After the patch:
        #
      
        $ make clean
        $ time make -j16 install
      
        ...
      
        real    0m11.457s
        user    1m43.411s
        sys     0m7.610s
      
      Without the patches it took 27.8 seconds:
      
        #
        #  Before the patches:
        #
      
        $ make clean
        $ time make -j16 install
      
        ...
      
        real    0m27.801s
        user    1m59.242s
        sys     0m9.749s
      
      So even in the complete rebuild case we are now ~2.5 times faster.
      Reported-by: NLinus Torvalds <torvalds@linux-foundation.org>
      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-x4qjnxjGrgxpribq8sdakfTp@git.kernel.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      31f6be65
  3. 09 7月, 2013 2 次提交
  4. 09 12月, 2012 2 次提交
  5. 25 10月, 2012 1 次提交
  6. 08 8月, 2012 1 次提交
  7. 07 2月, 2012 1 次提交
  8. 17 2月, 2011 1 次提交
  9. 11 3月, 2010 1 次提交
    • J
      perf: Make the install relative to DESTDIR if specified · 7ae5f213
      John Kacur 提交于
      Without this change, the install path is relative to
      prefix/DESTDIR where prefix is automatically set to $HOME.
      
      This can produce unexpected results. For example:
      
        make -C tools/perf DESTDIR=/home/jkacur/tmp install-man
      
      creates the directory:		/home/jkacur/home/jkacur/tmp/share/...
      instead of the expected:	/home/jkacur/tmp/share/...
      Signed-off-by: NJohn Kacur <jkacur@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Kyle McMartin <kyle@redhat.com>
      Cc: <stable@kernel.org>
      LKML-Reference: <1268312220-12880-1-git-send-email-jkacur@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7ae5f213
  10. 19 8月, 2009 1 次提交
    • K
      perf tools: Make 'make html' work · b395cd8a
      Kyle McMartin 提交于
      pushd tools/perf/Documentation
      make html
      popd
      
      is failing for me...
      
          ASCIIDOC perf-annotate.html
      ERROR: unsafe: include file: /etc/asciidoc/./stylesheets/xhtml11.css
      ERROR: unsafe: include file:
      /etc/asciidoc/./stylesheets/xhtml11-manpage.css
      ERROR: unsafe: include file:
      /etc/asciidoc/./stylesheets/xhtml11-quirks.css
      make: *** [perf-annotate.html] Error 1
      
      Apparently asciidoc "unsafe" is the default mode of operation
      in practice.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=506953
      
      Works tidily now.
      Signed-off-by: NKyle McMartin <kyle@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20090818164125.GM25206@bombadil.infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b395cd8a
  11. 07 6月, 2009 1 次提交
  12. 30 5月, 2009 1 次提交
    • I
      perf_counter tools: Generate per command manpages (and pdf/html, etc.) · c1c2365a
      Ingo Molnar 提交于
      Import Git's nice .txt => {man/html/pdf} generation machinery.
      
      Fix various errors in the Documentation/perf*.txt description as well.
      
      Also fix a bug in builtin-help: we'd map 'perf help top' to 'perftop'
      if only the 'perf' binary is in the default PATH - confusing the manpage
      logic. I dont fully understand why Git did it this way - but i suppose
      it's a migration artifact from their migration from standalone git-xyz
      commands to 'git xyz' commands. The perf tools were always using the
      modern form so it's not an issue there.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c1c2365a