From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
James Clark <james.clark@linaro.org>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Clark Williams <williams@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@kernel.org>
Subject: [PATCHES 0/8] perf tools: Diagnostic offsets in skip messages + two hardening fixes
Date: Tue, 2 Jun 2026 20:56:59 -0300 [thread overview]
Message-ID: <20260602235709.1541603-1-acme@kernel.org> (raw)
When perf report, perf sched, or perf timechart skip a malformed or
unprocessable event, the warning message doesn't say where in the
perf.data file the problem occurred. This makes it hard to
cross-reference with 'perf report -D' output or to locate the
corrupted region with a hex editor.
This series adds a file_offset field to struct perf_sample, set in the
event delivery path (including the deferred callchain path), and
retrofits all skip/stop/error messages to include:
- The file offset where the event was found
- The event type name via perf_event__name() with the numeric
type value in parentheses
For example, instead of:
problem processing 10 event, skipping it.
a user now sees:
WARNING: at offset 0x1a3f0: MMAP2 (10) event size 24 too small (min 64), skipping
The peek_event() path, which validates events during initial file
scanning, also gains file offsets in its three warning messages
(misaligned size, unsupported type, undersized event).
Two pre-existing bugs found by sashiko-bot are fixed:
- builtin-timechart.c cat_backtrace(): use-after-free and
double-free when an invalid callchain context triggers zfree()
before fclose() on an open_memstream buffer. The open_memstream
contract requires fclose() before the buffer can be freed — see
open_memstream(3).
- builtin-sched.c: three BUG_ON(cpu >= MAX_CPUS || cpu < 0)
that abort perf sched when PERF_SAMPLE_CPU is absent from the
sample type and the CPU sentinel (u32)-1 is cast to signed -1.
perf.data is untrusted input — a corrupted or truncated file
should produce a warning, not an abort.
Arnaldo Carvalho de Melo (8):
perf sample: Add file_offset field to struct perf_sample
perf session: Include file offset in event skip/stop messages
perf sched: Include file offset in event skip messages
perf timechart: Include file offset in CPU bounds check messages
perf tools: Include file offset and event type name in skip messages
perf timechart: Fix cat_backtrace() use-after-free on corrupted callchain
perf sched: Replace BUG_ON on invalid CPU with graceful skip
perf test: Add file offset diagnostic test for corrupted perf.data
15 files changed, 261 insertions(+), 101 deletions(-)
Developed with AI assistance (Claude/sashiko), tagged in commits.
Best regards,
- Arnaldo
next reply other threads:[~2026-06-02 23:57 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-02 23:56 Arnaldo Carvalho de Melo [this message]
2026-06-02 23:57 ` [PATCH 1/8] perf sample: Add file_offset field to struct perf_sample Arnaldo Carvalho de Melo
2026-06-03 15:11 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 2/8] perf session: Include file offset in event skip/stop messages Arnaldo Carvalho de Melo
2026-06-03 15:12 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 3/8] perf sched: Include file offset in event skip messages Arnaldo Carvalho de Melo
2026-06-03 15:13 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 4/8] perf timechart: Include file offset in CPU bounds check messages Arnaldo Carvalho de Melo
2026-06-03 0:36 ` sashiko-bot
2026-06-03 15:14 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 5/8] perf tools: Include file offset and event type name in skip messages Arnaldo Carvalho de Melo
2026-06-03 15:14 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 6/8] perf timechart: Fix cat_backtrace() use-after-free on corrupted callchain Arnaldo Carvalho de Melo
2026-06-03 15:16 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 7/8] perf sched: Replace BUG_ON on invalid CPU with graceful skip Arnaldo Carvalho de Melo
2026-06-03 1:16 ` sashiko-bot
2026-06-03 15:17 ` Ian Rogers
2026-06-02 23:57 ` [PATCH 8/8] perf test: Add file offset diagnostic test for corrupted perf.data Arnaldo Carvalho de Melo
2026-06-03 1:32 ` sashiko-bot
2026-06-03 15:19 ` Ian Rogers
2026-06-03 15:06 ` [PATCHES 0/8] perf tools: Diagnostic offsets in skip messages + two hardening fixes Ian Rogers
2026-06-03 19:27 ` Arnaldo Carvalho de Melo
2026-06-03 19:44 ` Ian Rogers
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=20260602235709.1541603-1-acme@kernel.org \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=tglx@linutronix.de \
--cc=williams@redhat.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.