lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM9d7cgoRUzRkwf37BisHV8vKWFD2AY+GJKH+eOqH4HmGBY2Wg@mail.gmail.com>
Date: Wed, 28 Aug 2024 10:06:37 -0700
From: Namhyung Kim <namhyung@...nel.org>
To: Ian Rogers <irogers@...gle.com>
Cc: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, 
	Arnaldo Carvalho de Melo <acme@...nel.org>, Mark Rutland <mark.rutland@....com>, 
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>, 
	Adrian Hunter <adrian.hunter@...el.com>, Kan Liang <kan.liang@...ux.intel.com>, 
	linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] perf report: Name events in stats for pipe mode

Hi Ian,

On Tue, Aug 27, 2024 at 2:37 PM Ian Rogers <irogers@...gle.com> wrote:
>
> In stats mode PERF_RECORD_EVENT_UPDATE isn't being handled meaning the
> evsels aren't named when handling pipe mode output.
>
> Before:
> ```
> $ perf record -e inst_retired.any -a -o - sleep 0.1|perf report --stats -i -
> ...
> Aggregated stats:
>            TOTAL events:      23358
>             COMM events:       2608  (11.2%)
>             EXIT events:          1  ( 0.0%)
>             FORK events:       2607  (11.2%)
>           SAMPLE events:        174  ( 0.7%)
>            MMAP2 events:      17936  (76.8%)
>             ATTR events:          2  ( 0.0%)
>   FINISHED_ROUND events:          2  ( 0.0%)
>         ID_INDEX events:          1  ( 0.0%)
>       THREAD_MAP events:          1  ( 0.0%)
>          CPU_MAP events:          1  ( 0.0%)
>     EVENT_UPDATE events:          3  ( 0.0%)
>        TIME_CONV events:          1  ( 0.0%)
>          FEATURE events:         20  ( 0.1%)
>    FINISHED_INIT events:          1  ( 0.0%)
> raw 0xc0 stats:
>           SAMPLE events:        174
> ```
>
> After:
> ```
> $ perf record -e inst_retired.any -a -o - sleep 0.1|perf report --stats -i -
> ...
> Aggregated stats:
>            TOTAL events:      23742
>             COMM events:       2620  (11.0%)
>             EXIT events:          2  ( 0.0%)
>             FORK events:       2619  (11.0%)
>           SAMPLE events:        165  ( 0.7%)
>            MMAP2 events:      18304  (77.1%)
>             ATTR events:          2  ( 0.0%)
>   FINISHED_ROUND events:          2  ( 0.0%)
>         ID_INDEX events:          1  ( 0.0%)
>       THREAD_MAP events:          1  ( 0.0%)
>          CPU_MAP events:          1  ( 0.0%)
>     EVENT_UPDATE events:          3  ( 0.0%)
>        TIME_CONV events:          1  ( 0.0%)
>          FEATURE events:         20  ( 0.1%)
>    FINISHED_INIT events:          1  ( 0.0%)
> inst_retired.any stats:
>           SAMPLE events:        165
> ```
>
> This makes the pipe output match the regular output.
>
> Signed-off-by: Ian Rogers <irogers@...gle.com>

Acked-by: Namhyung Kim <namhyung@...nel.org>

Thanks,
Namhyung

> ---
> This bug pre-dates commit 113f614c6dd0 ("perf report: Use
> perf_tool__init()")
> ---
>  tools/perf/builtin-report.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 1643113616f4..5c21ca33ca08 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -811,6 +811,7 @@ static void stats_setup(struct report *rep)
>         rep->tool.attr = process_attr;
>         rep->tool.sample = count_sample_event;
>         rep->tool.lost_samples = count_lost_samples_event;
> +       rep->tool.event_update = perf_event__process_event_update;
>         rep->tool.no_warn = true;
>  }
>
> --
> 2.46.0.295.g3b9ea8a38a-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ