[PATCH v1 1/3] perf synthetic-events: Ensure features are aligned
From: Ian Rogers
Date: Thu Dec 12 2024 - 03:05:43 EST
Features like hostname have arbitrary size and break the assumed
8-byte alignment of perf events. Pad all feature events until 8-byte
alignment is restored.
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/synthetic-events.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c
index f8ac2ac2da45..5b14244253b5 100644
--- a/tools/perf/util/synthetic-events.c
+++ b/tools/perf/util/synthetic-events.c
@@ -2401,6 +2401,11 @@ int perf_event__synthesize_features(const struct perf_tool *tool, struct perf_se
pr_debug("Error writing feature\n");
continue;
}
+ while (PERF_ALIGN(ff.offset, sizeof(u64)) != ff.offset) {
+ char c = 0;
+
+ do_write(&ff, &c, 1);
+ }
/* ff.buf may have changed due to realloc in do_write() */
fe = ff.buf;
memset(fe, 0, sizeof(*fe));
--
2.47.1.613.gc27f4b7a9f-goog