public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: tip-bot for Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-tip-commits@vger.kernel.org, linux-kernel@vger.kernel.org,
	paulus@samba.org, hpa@zytor.com, mingo@redhat.com,
	a.p.zijlstra@chello.nl, efault@gmx.de, shemminger@vyatta.com,
	paulmck@linux.vnet.ibm.com, fweisbec@gmail.com,
	tglx@linutronix.de
Subject: Re: [tip:perf/diff] perf diff: Introduce tool to show performance difference
Date: Tue, 15 Dec 2009 10:52:14 +0100	[thread overview]
Message-ID: <20091215095214.GA749@elte.hu> (raw)
In-Reply-To: <tip-86a9eee047ba09a714c3b8e27c9df2bbf715393a@git.kernel.org>


'perf diff' looks to be very useful!

I think we want to improve the default output some more:

For example there should be column names like for perf report:

# Overhead    Command                 Shared Object  Symbol
# ........  .........  ............................  ......
#
    13.87%  hackbench  [kernel]                      [k] _raw_spin_lock
     5.60%  hackbench  [kernel]                      [k] copy_user_generic_string
     5.23%  hackbench  [kernel]                      [k] __cache_free

Secondly, here's the current output of two successive 'hackbench 10' run:

   1 +2381        +58         [kernel.kallsyms]   avc_has_perm_noaudit
   2              -26         [kernel.kallsyms]   clear_page_c
   3  +107        +29         [kernel.kallsyms]   _raw_spin_lock
   4  +106        +23         [kernel.kallsyms]   _raw_spin_lock
   5  +105        +22         [kernel.kallsyms]   _raw_spin_lock
   6  +104        +21         [kernel.kallsyms]   _raw_spin_lock
   7  +103        +20         [kernel.kallsyms]   _raw_spin_lock
   8  +102        +20         [kernel.kallsyms]   _raw_spin_lock
   9  +101        +19         [kernel.kallsyms]   _raw_spin_lock
  10    -6        -28         [kernel.kallsyms]   selinux_task_wait
  11   +99        +18         [kernel.kallsyms]   _raw_spin_lock
  12   +98        +18         [kernel.kallsyms]   _raw_spin_lock
  13   +97        +18         [kernel.kallsyms]   _raw_spin_lock
  14   +96        +18         [kernel.kallsyms]   _raw_spin_lock
  15  +220        +20         [kernel.kallsyms]   _raw_spin_lock_irqsave
  16   +94        +17         [kernel.kallsyms]   _raw_spin_lock
  17   +93        +17         [kernel.kallsyms]   _raw_spin_lock
  18   +92        +16         [kernel.kallsyms]   _raw_spin_lock
  19 +9648        +30         [kernel.kallsyms]   copy_page_c
  20   +90        +15         [kernel.kallsyms]   _raw_spin_lock
  21   +89        +15         [kernel.kallsyms]   _raw_spin_lock

beyond the missing column names, there's some other things visible too:

 - the symbol names are per pid, so they repeat all over again. I think we 
want the default output to be like perf report's, i.e. PIDs get summarized 
over commands.

Furthermore, i think -p should be enabled by default. Especially with a lot of 
functions the +/- notation isnt very obvious at first sight.

I.e. output like this would be more useful i think:

    baseline    delta   command        symbol
    -----------------------------------------------------------
      13.87%    +0.11%  hackbench  [k]  _raw_spin_lock
       5.60%    -2.53%  hackbench  [k]  copy_user_generic_string
       5.23%    -0.14%  hackbench  [k] __cache_free
       4.30%    -2.59%  hackbench  [k] unix_stream_recvmsg
       3.35%    -1.56%  hackbench  [k] avc_has_perm_noaudit
    -----------------------------------------------------------
    Sum:
       0.51% +- 0.05% less time elapsed

The relative position can be printed too but should not necessarily be the 
default. Printing the delta in elapsed time is also very important, because 
not only do we want to know the after/before profile delta, we also want to 
see the tangible result in elapsed time - via the same tool.

Btw., i think we also want a "--repeat N" feature for perf record, to allow 
the recording of the same command over and over again, so that a higher 
quality profile can be achieved.

"perf record -f --repeat 10 cmd" would be a convenience shortcut for:

  rm -f perf.data
  for ((i=0; i<10; i++)); do
    perf record -A cmd
  done

Thanks,

	Ingo

  parent reply	other threads:[~2009-12-15  9:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-14 22:09 [PATCH 1/3] perf util: Remove setup_sorting dups Arnaldo Carvalho de Melo
2009-12-14 22:09 ` [PATCH 2/3] perf record: Rename perf.data to perf.data.old if --force/-f is used Arnaldo Carvalho de Melo
2009-12-14 22:09 ` [PATCH 3/3] perf diff: Introduce tool to show performance difference Arnaldo Carvalho de Melo
2009-12-14 22:47   ` Paul E. McKenney
2009-12-14 23:30     ` Arnaldo Carvalho de Melo
2009-12-15  5:51       ` Paul E. McKenney
2009-12-14 22:53   ` Frederic Weisbecker
     [not found]   ` <tip-86a9eee047ba09a714c3b8e27c9df2bbf715393a@git.kernel.org>
2009-12-15  9:52     ` Ingo Molnar [this message]
2009-12-15 12:09       ` [tip:perf/diff] " Frederic Weisbecker
2009-12-15 12:55       ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091215095214.GA749@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=efault@gmx.de \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=shemminger@vyatta.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox