“2a859ab07b6ab66f4134c4fffc341398bd3d328c”上不存在“README.md”
  1. 31 10月, 2012 2 次提交
    • I
      perf tools: Further speed up the perf build · 0e2af956
      Ingo Molnar 提交于
      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: NIngo 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: NArnaldo Carvalho de Melo <acme@redhat.com>
      0e2af956
    • I
      perf tools: Speed up the perf build time by simplifying the perf --version string generation · acddedfb
      Ingo Molnar 提交于
      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: NIngo 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: NArnaldo Carvalho de Melo <acme@redhat.com>
      acddedfb
  2. 29 10月, 2012 8 次提交
  3. 28 10月, 2012 1 次提交
  4. 26 10月, 2012 1 次提交
  5. 25 10月, 2012 5 次提交
  6. 24 10月, 2012 3 次提交
  7. 23 10月, 2012 1 次提交
  8. 22 10月, 2012 1 次提交
    • L
      perf tools: do not flush maps on COMM for perf report · 9fdbf671
      Luigi Semenzato 提交于
      This fixes a long-standing bug caused by the lack of separate COMM and EXEC
      record types, which makes "perf report" lose track of symbols when a process
      renames itself.
      
      With this fix (suggested by Stephane Eranian), a COMM (rename) no longer
      flushes the maps, which is the correct behavior.  An EXEC also no longer
      flushes the maps, but this doesn't matter because as new mappings are created
      (for the executable and the libraries) the old mappings are automatically
      removed.  This is not by accident: the functionality is necessary because DLLs
      can be explicitly loaded at any time with dlopen(), possibly on top of existing
      text, so "perf report" handles correctly the clobbering of new mappings on top
      of old ones.
      
      An alternative patch (which I proposed earlier) would be to introduce a
      separate PERF_RECORD_EXEC type, but it is a much larger change (about 300
      lines) and is not necessary.
      Signed-off-by: NLuigi Semenzato <semenzato@chromium.org>
      Tested-by: NStephane Eranian <eranian@google.com>
      Acked-by: NStephane Eranian <eranian@google.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Olof Johansson <olofj@chromium.org>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Sonny Rao <sonnyrao@chromium.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Stephen Wilson <wilsons@start.ca>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Vasiliy Kulikov <segoon@openwall.com>
      Link: http://lkml.kernel.org/r/1345585940-6497-1-git-send-email-semenzato@chromium.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9fdbf671
  9. 20 10月, 2012 1 次提交
  10. 17 10月, 2012 4 次提交
  11. 16 10月, 2012 1 次提交
    • D
      perf tool: Precise mode requires exclude_guest · 1342798c
      David Ahern 提交于
      Summary of events per Peter:
      
        "Intel PEBS in VT-x context uses the DS address as a guest linear address,
        even though its programmed by the host as a host linear address. This
        either results in guest memory corruption and or the hardware faulting and
        'crashing' the virtual machine.  Therefore we have to disable PEBS on VT-x
        enter and re-enable on VT-x exit, enforcing a strict exclude_guest.
      
        AMB IBS does work but doesn't currently support exclude_* at all,
        setting an exclude_* bit will make it fail."
      
      This patch handles userspace perf command, setting the exclude_guest
      attribute if precise mode is requested, but only if a user has not
      specified a request for guest or host only profiling (G or H attribute).
      
      Kernel side AMD currently ignores all exclude_* bits, so there is no impact
      to existing IBS code paths. Robert Richter has a patch where IBS code will
      return EINVAL if an exclude_* bit is set. When this goes in it means use
      of :p on AMD with IBS will first fail with EINVAL (because exclude_guest
      will be set). Then the existing fallback code within perf will unset
      exclude_guest and try again. The second attempt will succeed if the CPU
      supports IBS profiling.
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NRobert Richter <robert.richter@amd.com>
      Tested-by: NRobert Richter <robert.richter@amd.com>
      Reviewed-by: NRobert Richter <robert.richter@amd.com>
      Cc: Avi Kivity <avi@redhat.com>
      Cc: Gleb Natapov <gleb@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Robert Richter <robert.richter@amd.com>
      Link: http://lkml.kernel.org/r/1347569955-54626-2-git-send-email-dsahern@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1342798c
  12. 15 10月, 2012 1 次提交
  13. 13 10月, 2012 1 次提交
  14. 11 10月, 2012 1 次提交
  15. 09 10月, 2012 1 次提交
  16. 08 10月, 2012 1 次提交
  17. 07 10月, 2012 4 次提交
  18. 06 10月, 2012 3 次提交
新手
引导
客服 返回
顶部