All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Chun-Tse Shao <ctshao@google.com>,
	linux-kernel@vger.kernel.org, peterz@infradead.org,
	mingo@redhat.com, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, terrelln@fb.com, leo.yan@arm.com,
	james.clark@linaro.org, christophe.leroy@csgroup.eu,
	ben.gainey@arm.com, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v2 1/2] perf record: Add 8-byte aligned event type PERF_RECORD_COMPRESSED2
Date: Mon, 17 Mar 2025 13:17:46 -0300	[thread overview]
Message-ID: <Z9hLKsZOfouM3K7H@x1> (raw)
In-Reply-To: <Z9hFJtEKfsGGUDMg@x1>

On Mon, Mar 17, 2025 at 12:52:09PM -0300, Arnaldo Carvalho de Melo wrote:
> On Fri, Mar 14, 2025 at 06:27:05PM -0700, Namhyung Kim wrote:
> > On Mon, Mar 03, 2025 at 10:32:40AM -0800, Chun-Tse Shao wrote:
> > > The original PERF_RECORD_COMPRESS is not 8-byte aligned, which can cause
> > > asan runtime error:

> > >   # Build with asan
> > >   $ make -C tools/perf O=/tmp/perf DEBUG=1 EXTRA_CFLAGS="-O0 -g -fno-omit-frame-pointer -fsanitize=undefined"
> > >   # Test success with many asan runtime errors:
> > >   $ /tmp/perf/perf test "Zstd perf.data compression/decompression" -vv
> > >    83: Zstd perf.data compression/decompression:
> > >   ...
> > >   util/session.c:1959:13: runtime error: member access within misaligned address 0x7f69e3f99653 for type 'union perf_event', which requires 13 byte alignment
> > >   0x7f69e3f99653: note: pointer points here
> > >    d0  3a 50 69 44 00 00 00 00  00 08 00 bb 07 00 00 00  00 00 00 44 00 00 00 00  00 00 00 ff 07 00 00
> > >                 ^
> > >   util/session.c:2163:22: runtime error: member access within misaligned address 0x7f69e3f99653 for type 'union perf_event', which requires 8 byte alignment
> > >   0x7f69e3f99653: note: pointer points here
> > >    d0  3a 50 69 44 00 00 00 00  00 08 00 bb 07 00 00 00  00 00 00 44 00 00 00 00  00 00 00 ff 07 00 00
> > >                 ^
> > >   ...

> > > Since there is no way to align compressed data in zstd compression, this
> > > patch add a new event type `PERF_RECORD_COMPRESSED2`, which adds a field
> > > `data_size` to specify the actual compressed data size. The
> > > `header.size` contains the total record size, including the padding at
> > > the end to make it 8-byte aligned.

> > > Tested with `Zstd perf.data compression/decompression`

> > Looks good to me.
 
> > Arnaldo, are you ok with adding a new record type for this?
 
> Checking the discussion and the patch.

My first impression yesterday when I saw this on the smartphone was: how
will an old perf binary handle the new PERF_RECORD_COMPRESSED2? Will it
ignore it while emitting a warning, since it can be skipped and then
what we will get a partial view?

Having some session output showing how an older perf binary handles
PERF_RECORD_COMPRESS2 would be informative.

I'll try to reproduce/test this all...

- Arnaldo

  reply	other threads:[~2025-03-17 16:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-03 18:32 [PATCH v2 1/2] perf record: Add 8-byte aligned event type PERF_RECORD_COMPRESSED2 Chun-Tse Shao
2025-03-03 18:32 ` [PATCH v2 2/2] perf record: Fix a asan runtime error in util/maps.c Chun-Tse Shao
2025-03-15  1:27 ` [PATCH v2 1/2] perf record: Add 8-byte aligned event type PERF_RECORD_COMPRESSED2 Namhyung Kim
2025-03-17 15:52   ` Arnaldo Carvalho de Melo
2025-03-17 16:17     ` Arnaldo Carvalho de Melo [this message]
2025-03-17 16:32       ` Ian Rogers
2025-03-17 19:36         ` Arnaldo Carvalho de Melo
2025-03-17 20:24           ` Arnaldo Carvalho de Melo
2025-03-17 16:46       ` Namhyung Kim
2025-03-17 20:35         ` Arnaldo Carvalho de Melo
2025-03-17 21:45           ` Chun-Tse Shao
2025-03-17 21:49             ` Arnaldo Carvalho de Melo
2025-03-18  5:13               ` Namhyung Kim
2025-05-16 17:10                 ` Chun-Tse Shao
2025-05-16 19:16                   ` Arnaldo Carvalho de Melo
2025-05-16 21:44                     ` Chun-Tse Shao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z9hLKsZOfouM3K7H@x1 \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=ben.gainey@arm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=ctshao@google.com \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=leo.yan@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=terrelln@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.