Re: Add fine grained sampled metrics for perf script
From: Jiri Olsa
Date: Thu Nov 23 2017 - 02:47:49 EST
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,
jirka