1. 17 11月, 2009 5 次提交
  2. 15 11月, 2009 2 次提交
    • L
      perf stat: Do not print ratio when task-clock event is not counted · 7255fe2a
      Lucas De Marchi 提交于
      The ratio between the number of events and the time elapsed makes
      sense only if task-clock event is counted. Otherwise it will be
      simply a (confusing)
      
      	#      0.000 M/sec
      
      This patch outputs the ratio only if task-clock event is counted.
      Some test examples of before and after:
      
      Before:
      
       [lucas@skywalker linux.trees.git]$ sudo perf stat -e branch-misses -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1367818  branch-misses            #      0.000 M/sec
      
      	    1.001494325  seconds time elapsed
      
      After (without task-clock):
      
       [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1135044  branch-misses
      
      	    1.001370775  seconds time elapsed
      
      After (with task-clock):
      
       [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -e task-clock -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1070111  branch-misses            #      0.534 M/sec
      	    2002.730893  task-clock-msecs         #      1.999 CPUs
      
      	    1.001640292  seconds time elapsed
      Signed-off-by: NLucas De Marchi <lucas.de.marchi@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <20091115140507.GB21561@skywalker.lan>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7255fe2a
    • H
      perf tools: Add new perf_atoll() function to parse string representing size in bytes · d2fb8b41
      Hitoshi Mitake 提交于
      This patch modifies util/string.[ch] to add new function:
      perf_atoll() to parse string representing size in bytes.
      
      This function parses (\d+)(b|B|kb|KB|mb|MB|gb|GB) (e.g. "256MB")
      and returns its numeric value. (e.g. 268435456)
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1258285013-4759-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d2fb8b41
  3. 11 11月, 2009 10 次提交
    • M
      perf tools: Test -fstack-protector-all compiler option for inclusion in CFLAGS · 5d7bdab7
      Michael Cree 提交于
      Some architectures (e.g. Alpha) do not support the
      -fstack-protector-all compiler option and the use of the option
      with -Werror causes the compiler to abort and the build fails.
      
      Test that the compiler supports -fstack-protector-all before
      inclusion in CFLAGS.
      Signed-off-by: NMichael Cree <mcree@orcon.net.nz>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <20091111074302.GA3728@omega>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5d7bdab7
    • F
      perf tools: Bring linear set of section headers for features · 9e827dd0
      Frederic Weisbecker 提交于
      Build a set of section headers for features right after the
      datas. Each implemented feature will have one of such section
      header that provides the offset and the size of the data
      manipulated by the feature.
      
      The trace informations have moved after the data and are
      recorded on exit time.
      
      The new layout is as follows:
      
       -----------------------
                                   ___
       [ magic               ]      |
       [ header size         ]      |
       [ attr size           ]      |
       [ attr content offset ]      |
       [ attr content size   ]      |
       [ data offset         ]  File Headers
       [ data size           ]      |
       [ event_types offset  ]      |
       [ event_types size    ]      |
       [ feature bitmap      ]      v
      
       [ attr section        ]
       [ events section      ]
      
                                   ___
       [         X           ]      |
       [         X           ]      |
       [         X           ]    Datas
       [         X           ]      |
       [         X           ]      v
      
                                   ___
       [ Feature 1 offset    ]      |
       [ Feature 1 size      ] Features headers
       [ Feature 2 offset    ]      |
       [ Feature 2 size      ]      v
      
       [ Feature 1 content   ]
       [ Feature 2 content   ]
       -----------------------
      
      We have as many feature's section headers as we have features in
      use for the current file.
      
      Say Feat 1 and Feat 3 are used by the file, but not Feat 2. Then
      the feature headers will be like follows:
      
      [ Feature 1 offset    ]      |
      [ Feature 1 size      ] Features headers
      [ Feature 3 offset    ]      |
      [ Feature 3 size      ]      v
      
      There is no hole to cover Feature 2 that is not in use here. We
      only need to cover the needed headers in order, from the lowest
      feature bit to the highest.
      
      Currently we have two features: HEADER_TRACE_INFO and
      HEADER_BUILD_ID. Both have their contents that follow the
      feature headers. Putting the contents right after the feature
      headers is not mandatory though. While we keep the feature
      headers right after the data and in order, their offsets can
      point everywhere. We have just put the two above feature
      contents in the end of the file for convenience.
      
      The purpose of this layout change is to have a file format that
      scales while keeping it simple: having such linear feature
      headers is less error prone wrt forward/backward compatibility
      as the content of a feature can be put anywhere, its location
      can even change by the time, it's fine because its headers will
      tell where it is. And we know how to find these headers,
      following the above rules.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-6-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9e827dd0
    • F
      perf tools: Use perf_header__set/has_feat whenever possible · 3e13ab2d
      Frederic Weisbecker 提交于
      And drop the alternate checks/sets using set_bit or other kind
      of helpers.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-5-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3e13ab2d
    • F
      perf tools: Read the build-ids from the header layer · 4778d2e4
      Frederic Weisbecker 提交于
      Keep the build-ids reading implementation in the data mapping
      but move its call to the headers so that we have a better
      control on it (offset seeking, size passing, etc..).
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-4-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4778d2e4
    • F
      perf tools: Split up build id saving into fetch and write · 57f395a7
      Frederic Weisbecker 提交于
      We are saving the build id once we stop the profiling. And only
      after doing that we know if we need to set that feature in the
      header through the feature bitmap.
      
      But if we want a proper feature support in the headers, using a
      rule of offset/size pairs in sections, we need to know in
      advance how many features we need to set in the headers, so that
      we can reserve rooms for their section headers.
      
      The current state doesn't allow that, as it forces us to first
      save the build-ids to the file right after the datas instead of
      planning any structured layout.
      
      That's why this splits up the build-ids processing in two parts:
      one that fetches the build-ids from the Dso objects, and one
      that saves them into the file.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-3-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      57f395a7
    • F
      perf tools: Move the build-id storage operations to headers · 8671dab9
      Frederic Weisbecker 提交于
      So that it makes easier to control it. Especially because we
      plan to give it a feature section.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-2-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8671dab9
    • F
      perf tools: Synthetize the targeted process · de896721
      Frederic Weisbecker 提交于
      Don't forget to also synthetize the targeted process from perf
      record or we'll miss its dso in the events and then we won't be
      able to deal with its build-id.
      
      We are missing it because it is created after the existing
      synthetized tasks but before the counters are enabled and can
      send its mapping event.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      LKML-Reference: <1257911467-28276-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      de896721
    • H
      perf bench: Improve sched-message.c with more comfortable output · c5659b74
      Hitoshi Mitake 提交于
      This patch improves sched-message.c with more comfortable output.
      
      Change points are comment style description and
      formatting numerical values and its units.
      
      Example:
      
       | % perf bench sched messaging
       | # Running sched/messaging benchmark...
       | # 20 sender and receiver processes per group
       | # 10 groups == 400 processes run
       |
       |      Total time: 1.490 [sec]
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257865442-20252-4-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      c5659b74
    • H
      perf bench: Improve sched-pipe.c with more comfortable output · ff676b19
      Hitoshi Mitake 提交于
      This patch improves sched-pipe.c with more comfortable output.
      
      Change points are comment style description and
      formatting numerical values and its units.
      
      Example:
      
       | % ./perf bench sched pipe
       | # Running sched/pipe benchmark...
       | # Extecuted 1000000 pipe operations between two tasks
       |
       |      Total time:5.822 [sec]
       |
       |        5.822553 usecs/op
       |          171745 ops/sec
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257865442-20252-3-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ff676b19
    • H
      perf bench: Improve builtin-bench.c for more friendly output · 79e295d4
      Hitoshi Mitake 提交于
      This patch makes output of perf bench more friendly.
      Current style of putput, keeping user wait
      and printing everything suddenly when we finish,
      may confuse users.
      
      So I improved it:
      
       | % perf bench sched messaging
       | # Running sched/messaging benchmark...  <- printed right after invocation
       | # 20 sender and receiver processes per group
       | # 10 groups == 400 processes run
       |
       |      Total time: 1.476 [sec]
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257865442-20252-2-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      79e295d4
  4. 10 11月, 2009 7 次提交
    • H
      perf bench: Modify command-list.txt for the entry of perf-bench · 8d8d61aa
      Hitoshi Mitake 提交于
      This patch modifies command-list.txt for the entry of
      perf-bench. So perf will show 'bench' in command list.
      
      Example:
      % perf
      
       usage: perf [--version] [--help] COMMAND [ARGS]
      
       The most commonly used perf commands are:
         annotate    Read perf.data (created by perf record) and display annotated code
         bench       General framework for benchmark suites
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         list        List all symbolic event types
         probe       Define new dynamic tracepoints
         record      Run a command and record its profile into perf.data
         report      Read perf.data (created by perf record) and display the profile
         sched       Tool to trace/measure scheduler properties (latencies)
         stat        Run a command and gather performance counter statistics
         timechart   Tool to visualize total system behavior during a workload
         top         System profiling tool.
         trace       Read perf.data (created by perf record) and display trace output
      
       See 'perf help COMMAND' for more information on a specific command.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257853855-28934-4-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8d8d61aa
    • H
      perf bench: Add new document about perf-bench · 9fbc04f2
      Hitoshi Mitake 提交于
      This patch adds new document about perf-bench.
      Man page and html will be provided for user.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257853855-28934-3-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9fbc04f2
    • I
      perf bench: Clean up bench/bench.h · 606bc1e1
      Ingo Molnar 提交于
      Clean up initializers in bench.h:
      
        - No need to break the line for function prototypes, they are more
          readable in a single line. (even if checkpatch complains about it
      
        - We try to align definitions / structure fields vertically,
          to make it  all a bit more readable.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257853855-28934-2-git-send-email-mitake@dcl.info.waseda.ac.jp>
      606bc1e1
    • H
      perf bench: Modify builtin-pipe.c for processing common options · 158ba827
      Hitoshi Mitake 提交于
      This patch modifies builtin-pipe.c for processing common
      options. The first option added is "--format".
      Users of perf bench will be able to specify output style by
      --format.
      
      Usage example:
      
       % ./perf bench sched pipe		# with no style specify
       (executing 1000000 pipe operations between two tasks)
      
               Total time:5.855 sec
                       5.855061 usecs/op
                       170792 ops/sec
      
       % ./perf bench --format=simple sched pipe # specified simple
       5.988
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257808802-9420-5-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      158ba827
    • H
      perf bench: Modify bench/bench-messaging.c to adopt unified output formatting · cced06c6
      Hitoshi Mitake 提交于
      This patch modifies bench/bench-messaging.c to adopt
      unified output formatting: --format option.
      
      Usage example:
      
       % ./perf bench sched messaging              # with no style
       specify (20 sender and receiver processes per group)
       (10 groups == 400 processes run)
      
              Total time:1.431 sec
      
       % ./perf bench --format=simple sched messaging # specified
       simple 1.431
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257808802-9420-4-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cced06c6
    • H
      perf bench: Modify builtin-bench.c for processing common options · 386d7e9e
      Hitoshi Mitake 提交于
      This patch modifies builtin-bench.c for processing common
      options. The first option added is "--format".
      Users of perf bench will be able to specify output style by
      --format.
      
      Usage example:
      
       % ./perf bench sched messaging		# with no style specify
       (20 sender and receiver processes per group)
       (10 groups == 400 processes run)
      
               Total time:1.431 sec
      
       % ./perf bench --format=simple sched messaging # specified
       simple 1.431
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257808802-9420-3-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      386d7e9e
    • H
      perf bench: Add format constants to bench.h for unified output formatting · 242aa14a
      Hitoshi Mitake 提交于
      This patch adds some constants and extern declaration to
      bench.h. These are used for unified output formatting
      of 'perf bench'.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1257808802-9420-2-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      242aa14a
  5. 09 11月, 2009 5 次提交
    • Z
      perf tools: Fix syntax in documentation · ca2b900f
      Zeev Tarantov 提交于
      Fix trivial syntax in perf-events user-space tools
      documentation.
      Signed-off-by: NZeev Tarantov <zeev.tarantov@gmail.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: <12d7e64c0911081811i7e5b466cu6706ff6ab3e70db4@mail.gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ca2b900f
    • H
      perf bench: Fix bench/sched-pipe.c to wait for child process · 5ff0cfc6
      Hitoshi Mitake 提交于
      Ingo reported this small 'perf bench sched pipe' output problem:
      
       | $ ./perf bench sched pipe
       | (executing 1000000 pipe operations between two tasks)
       |
       |	Total time:4.898 sec
       | $		4.898586 usecs/op
       |		204140 ops/sec
       |
       | the shell prompt came back before the usecs/op and ops/sec line
       | was printed. Process teardown race, lack of wait() or so?
      
      This caused by lack of calling waitpid() by parent process,
      so I added it.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257737465-7546-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5ff0cfc6
    • C
      perf tools: Modify perf routines to use new debugfs routines · 549104f2
      Clark Williams 提交于
      modify perf.c get_debugfs_mntpnt() to use the util/debugfs.c
      debugfs_find_mountpoint()
      
      modify util/parse-events.c to use debugfs_valid_mountpoint().
      Signed-off-by: NClark Williams <williams@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <20091101155720.624cc87e@torg>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      549104f2
    • C
      perf tools: Add debugfs utility routines for perf · afe61f67
      Clark Williams 提交于
      Add routines to locate the debugfs mount point and to manage the
      mounting and unmounting of the debugfs.
      Signed-off-by: NClark Williams <williams@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <20091101155621.2b3503ee@torg>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      afe61f67
    • P
      perf tools: Fix permission checks · c10edee2
      Pekka Enberg 提交于
      The perf_event_open() system call returns EACCES if the user is
      not root which results in a very confusing error message:
      
        $ perf record -A -a -f
      
          Error: perfcounter syscall returned with -1 (Permission denied)
      
          Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
      
      It turns out that's because perf tools are checking only for
      EPERM. Fix that up to get a much better error message:
      
        $ perf record -A -a -f
          Fatal: Permission error - are you root?
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1257696066-4046-1-git-send-email-penberg@cs.helsinki.fi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c10edee2
  6. 08 11月, 2009 8 次提交
    • A
      perf symbols: Use the buildids if present · 8d06367f
      Arnaldo Carvalho de Melo 提交于
      With this change 'perf record' will intercept PERF_RECORD_MMAP
      calls, creating a linked list of DSOs, then when the session
      finishes, it will traverse this list and read the buildids,
      stashing them at the end of the file and will set up a new
      feature bit in the header bitmask.
      
      'perf report' will then notice this feature and populate the
      'dsos' list and set the build ids.
      
      When reading the symtabs it will refuse to load from a file that
      doesn't have the same build id. This improves the
      reliability of the profiler output, as symbols and profiling
      data is more guaranteed to match.
      
      Example:
      
       [root@doppio ~]# perf report | head
       /home/acme/bin/perf with build id b1ea544ac3746e7538972548a09aadecc5753868 not found, continuing without symbols
        # Samples: 2621434559
        #
        # Overhead          Command                  Shared Object  Symbol
        # ........  ...............  .............................  ......
        #
             7.91%             init  [kernel]        [k] read_hpet
             7.64%             init  [kernel]        [k] mwait_idle_with_hints
             7.60%          swapper  [kernel]        [k] read_hpet
             7.60%          swapper  [kernel]        [k] mwait_idle_with_hints
             3.65%             init  [kernel]        [k] 0xffffffffa02339d9
      [root@doppio ~]#
      
      In this case the 'perf' binary was an older one, vanished,
      so its symbols probably wouldn't match or would cause subtly
      different (and misleading) output.
      
      Next patches will support the kernel as well, reading the build
      id notes for it and the modules from /sys.
      
      Another patch should also introduce a new plumbing command:
      
      'perf list-buildids'
      
      that will then be used in porcelain that is distro specific to
      fetch -debuginfo packages where such buildids are present. This
      will in turn allow for one to run 'perf record' in one machine
      and 'perf report' in another.
      
      Future work on having the buildid sent directly from the kernel
      in the PERF_RECORD_MMAP event is needed to close races, as the
      DSO can be changed during a 'perf record' session, but this
      patch at least helps with non-corner cases and current/older
      kernels.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Frank Ch. Eigler <fche@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Jim Keniston <jkenisto@us.ibm.com>
      Cc: K. Prasad <prasad@linux.vnet.ibm.com>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1257367843-26224-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8d06367f
    • H
      perf bench: Add subcommand 'bench' to the Makefile · bfde82ef
      Hitoshi Mitake 提交于
      This patch modifies Makefile for new files related to 'bench'
      subcommand. The new code is active from this point on.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-8-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bfde82ef
    • H
      perf bench: Add new subcommand 'bench' to perf.c · dcba8848
      Hitoshi Mitake 提交于
      This patch modifies perf.c for invoking 'bench' subcommand.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-7-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      dcba8848
    • H
      perf bench: Modify builtin.h for new prototype · 11bd341c
      Hitoshi Mitake 提交于
      This patch modifies builtin.h to add prototype of cmd_bench().
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-6-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      11bd341c
    • H
      perf bench: Add builtin-bench.c: General framework for benchmark suites · 629cc356
      Hitoshi Mitake 提交于
      This patch adds builtin-bench.c
      builtin-bench.c is a general framework for benchmark suites.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-5-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      629cc356
    • H
      perf bench: Add sched-pipe.c: Benchmark for pipe() system call · c7d9300f
      Hitoshi Mitake 提交于
      This patch adds bench/sched-pipe.c.
      
      bench/sched-pipe.c is a benchmark program
      to measure performance of pipe() system call.
      This benchmark is based on pipe-test-1m.c by Ingo Molnar:
      
         http://people.redhat.com/mingo/cfs-scheduler/tools/pipe-test-1m.c
      
      Example of use:
      
      % perf bench sched pipe
        (executing 1000000 pipe operations between two tasks)
      
                Total time:4.499 sec
                        4.499179 usecs/op
                        222262 ops/sec
      
      % perf bench sched pipe -s -l 1000
      0.015
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-4-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c7d9300f
    • H
      perf bench: Add sched-messaging.c: Benchmark for scheduler and IPC mechanisms based on hackbench · e27454cc
      Hitoshi Mitake 提交于
      This patch adds bench/sched-messaging.c.
      
      This benchmark measures performance of scheduler and IPC
      mechanisms, and is based on hackbench by Rusty Russell.
      
      Example of usage:
      
        % perf bench sched messaging -g 20 -l 1000 -s
        5.432  	  	       	    	    	     # in sec
      
        % perf bench sched messaging                 # run with default
        options (20 sender and receiver processes per group)
        (10 groups == 400 processes run)
      
              Total time:0.308 sec
      
        % perf bench sched messaging -t -g 20	     # # be multi-thread,
        with 20 groups (20 sender and receiver threads per group)
        (20 groups == 800 threads run)
      
              Total time:0.582 sec
      
      ( Rusty is the original author of hackbench.c and he said the code is
        and was under the GPLv2 so fine to be merged. )
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Acked-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-3-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e27454cc
    • H
      perf bench: Add new directory and header for new subcommand 'bench' · c426bba0
      Hitoshi Mitake 提交于
      This patch adds bench/ directory and bench/bench.h.
      
      bench/ directory will contain modules for bench subcommand.
      bench/bench.h is for listing prototypes of module functions.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257381097-4743-2-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c426bba0
  7. 04 11月, 2009 3 次提交