[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM9d7ch_CV3mpno+6D23UGaXzL9zhmzmt513RzbWq8q_0DhU4A@mail.gmail.com>
Date: Fri, 14 Oct 2022 11:10:14 -0700
From: Namhyung Kim <namhyung@...nel.org>
To: Jiri Olsa <olsajiri@...il.com>
Cc: Michael Petlan <mpetlan@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Ingo Molnar <mingo@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
LKML <linux-kernel@...r.kernel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
linux-perf-users <linux-perf-users@...r.kernel.org>,
Kan Liang <kan.liang@...ux.intel.com>,
Leo Yan <leo.yan@...aro.org>, Andi Kleen <ak@...ux.intel.com>,
Athira Rajeev <atrajeev@...ux.vnet.ibm.com>,
James Clark <james.clark@....com>,
Xing Zhengjun <zhengjun.xing@...ux.intel.com>
Subject: Re: [PATCHSET 00/19] perf stat: Cleanup counter aggregation (v2)
Hi Jiri and Michael,
On Thu, Oct 13, 2022 at 11:56 PM Jiri Olsa <olsajiri@...il.com> wrote:
>
> On Thu, Oct 13, 2022 at 11:15:31PM -0700, Namhyung Kim wrote:
> > Hello,
> >
> > Current perf stat code is somewhat hard to follow since it handles
> > many combinations of PMUs/events for given display and aggregation
> > options. This is my attempt to clean it up a little. ;-)
> >
> > changes in v2)
> > * fix a segfault in perf stat report for per-process record (Jiri)
> > * fix metric only display (Jiri)
> > * add evsel__reset_aggr_stat (ian)
> > * add more comments (Ian)
> > * add Acked-by from Ian
> >
> > My first concern is that aggregation and display routines are intermixed
> > and processed differently depends on the aggregation mode. I'd like to
> > separate them apart and make the logic clearer.
> >
> > To do that, I added struct perf_stat_aggr to save the aggregated counter
> > values and other info. It'll be allocated and processed according to
> > the aggr_mode and display logic will use it.
> >
> > I've tested the following combination.
> >
> > $ cat test-matrix.sh
> > #!/bin/sh
> >
> > set -e
> >
> > yes > /dev/null &
> > TARGET=$!
> >
> > ./perf stat true
> > ./perf stat -a true
> > ./perf stat -C0 true
> > ./perf stat -p $TARGET true
> > ./perf stat -t $TARGET true
> >
> > ./perf stat -a -A true
> > ./perf stat -a --per-node true
> > ./perf stat -a --per-socket true
> > ./perf stat -a --per-die true
> > ./perf stat -a --per-core true
> > ./perf stat -a --per-thread true
> >
> > ./perf stat -a -I 500 sleep 1
> > ./perf stat -a -I 500 --summary sleep 1
> > ./perf stat -a -I 500 --per-socket sleep 1
> > ./perf stat -a -I 500 --summary --per-socket sleep 1
> >
> > ./perf stat -a --metric-only true
> > ./perf stat -a --metric-only --per-socket true
> > ./perf stat -a --metric-only -I 500 sleep 1
> > ./perf stat -a --metric-only -I 500 --per-socket sleep 1
> >
> > ./perf stat record true && ./perf stat report
> > ./perf stat record -p $TARGET true && ./perf stat report
> > ./perf stat record -a true && ./perf stat report
> > ./perf stat record -a --per-core true && ./perf stat report
> > ./perf stat record -a --per-core --metric-only true && ./perf stat report
> > ./perf stat record -a -I 500 sleep 1 && ./perf stat report
> > ./perf stat record -a -I 500 --per-core sleep 1 && ./perf stat report
> > ./perf stat record -a -I 500 --per-core --metric-only sleep 1 && ./perf stat report
> >
> > ./perf stat -a -A -e cpu/event=cpu-cycles,percore/ true
> > ./perf stat -a -A -e cpu/event=cpu-cycles,percore/ --percore-show-thread true
> >
> > kill $TARGET
> >
> > The code is available at 'perf/stat-aggr-v2' branch in
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git
>
> Michael,
> ay chance you could run your test suite on top of this change?
I've noticed there's an issue with cgroups. Will send a fix soon.
Thanks,
Namhyung
Powered by blists - more mailing lists