• Stephane Eranian's avatar
    perf tools: Fix broken number of samples for perf report -n · e39622ce
    Stephane Eranian authored
    The perf report -n option was broken because it was not reporting the
    correct number of samples depending on the sorting mode. By default,
    samples are sorted by comm,dso,sym. That means that samples for the same
    command (binary) get collapsed.
    
    The hists__collapse_insert_entry() had a bug whereby it was aggregating
    the number of events observed (periods) but not the number of samples.
    Consequently, the number of samples reported could be below reality. The
    percentage remained correct because based on the periods.
    
    This patch fixes the problem by also aggregating the number of samples.
    Here is an example:
    
    $ perf report -n --stdio
        12.38%        842     pong  [kernel.kallsyms]     [k] __lock_acquire
    
    Here pong (a ctxsw stress test), is the only program running
    and thus it is the only one responsible for the lock_acquire samples.
    
    If we change the sorting mode:
    
    $ perf report -n --stdio --sort=sym
        12.38%       1732  [k] __lock_acquire
    
    The actual number of samples is shown.
    
    With the fix:
    
    $ perf report -n --stdio
        12.38%       1732     pong  [kernel.kallsyms]     [k] __lock_acquire
    
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20111003093815.GA6393@quadSigned-off-by: default avatarStephane Eranian <eranian@google.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e39622ce
hist.c 26.5 KB