Re: [PATCH v1 1/3] perf synthetic-events: Ensure features are aligned

From: Ian Rogers
Date: Sat Dec 14 2024 - 14:32:50 EST


On Thu, Dec 12, 2024 at 12:05 AM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> 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>

This change breaks pipe mode tests for me on ARM. I've not investigated why yet.

Thanks,
Ian

> ---
> 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
>