[PATCH v3 5/5] perf record: Assert synthesized events are 8-byte aligned

From: Ian Rogers
Date: Mon Dec 16 2024 - 18:26:32 EST


Capture that events are 8-byte aligned and avoid later misaligned
event problems.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/builtin-record.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index adbaf80b398c..a5689d0e93ad 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -624,7 +624,10 @@ static int process_synthesized_event(const struct perf_tool *tool,
struct machine *machine __maybe_unused)
{
struct record *rec = container_of(tool, struct record, tool);
- return record__write(rec, NULL, event, event->header.size);
+ size_t size = event->header.size;
+
+ assert(PERF_ALIGN(size, sizeof(u64)) == size);
+ return record__write(rec, NULL, event, size);
}

static struct mutex synth_lock;
--
2.47.1.613.gc27f4b7a9f-goog