Re: Add fine grained sampled metrics for perf script

From: Arnaldo Carvalho de Melo
Date: Thu Nov 23 2017 - 12:46:26 EST


Em Thu, Nov 23, 2017 at 08:47:42AM +0100, Jiri Olsa escreveu:
> On Fri, Nov 17, 2017 at 01:42:57PM -0800, Andi Kleen wrote:
>
> SNIP
>
> > TopDown:
> >
> > Note TopDown requires disabling SMT if you have it enabled (e.g. by offlining
> > the extra CPUs), because SMT would require sampling per core, which is not supported.
> >
> > $ perf record -e '{ref-cycles,topdown-fetch-bubbles,topdown-recovery-bubbles,\
> > topdown-slots-retired,topdown-total-slots,topdown-slots-issued}:S' -a sleep 1
> > $ perf script --header -I -F cpu,ip,sym,event,metric,period
> > ...
> > [000] 121108 ref-cycles: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] 190350 topdown-fetch-bubbles: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] 2055 topdown-recovery-bubbles: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] 148729 topdown-slots-retired: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] 144324 topdown-total-slots: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] 160852 topdown-slots-issued: ffffffff8165222e copy_user_enhanced_fast_string
> > [000] metric: 33.0% frontend bound
> > [000] metric: 3.5% bad speculation
> > [000] metric: 25.8% retiring
> > [000] metric: 37.7% backend bound
> > [000] 112112 ref-cycles: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] 357222 topdown-fetch-bubbles: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] 3325 topdown-recovery-bubbles: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] 323553 topdown-slots-retired: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] 270507 topdown-total-slots: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] 341226 topdown-slots-issued: ffffffff8165aec8 _raw_spin_lock_irqsave
> > [000] metric: 33.0% frontend bound
> > [000] metric: 2.9% bad speculation
> > [000] metric: 29.9% retiring
> > [000] metric: 34.2% backend bound
> >
> >
> > Git tree:
> > git://git.kernel.org/pub/scm/limux/kernel/git/ak/linux-misc.git perf/script-metric-3
> >
> >
> > v1: Initial post
> > v2:
> > Remove already merged patches.
> > Use evsel->priv for new fields
> > Port to new base line, support fp output.
> > Handle stats in ->stats, not ->priv
> > Minor cleanups
> > v3:
> > Enable EVENT_UPDATE in perf record, and record unit/scale/cpu map/thread map
> > Drop the previous zero cpu map hack.
>
> Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

Thanks, applied, and added the detailed explanation about the use of the
term 'averaging' done by Andi,

- Arnaldo