From 0ae2480784a9fb6598c4500fce08669c57afa970 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 19 Feb 2026 14:57:05 +0000 Subject: Disable PERF_RECORD_COMPRESSED2 with perf record --- dev-util/perf/perf-6.18.5-no-compressed2.patch | 60 ++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 dev-util/perf/perf-6.18.5-no-compressed2.patch (limited to 'dev-util/perf') diff --git a/dev-util/perf/perf-6.18.5-no-compressed2.patch b/dev-util/perf/perf-6.18.5-no-compressed2.patch new file mode 100644 index 0000000..7286090 --- /dev/null +++ b/dev-util/perf/perf-6.18.5-no-compressed2.patch @@ -0,0 +1,60 @@ +reverted: +--- perf/builtin-record.c ++++ perf/builtin-record.c +@@ -650,27 +650,14 @@ + struct record *rec = to; + + if (record__comp_enabled(rec)) { +- struct perf_record_compressed2 *event = map->data; +- size_t padding = 0; +- u8 pad[8] = {0}; + ssize_t compressed = zstd_compress(rec->session, map, map->data, + mmap__mmap_len(map), bf, size); + + if (compressed < 0) + return (int)compressed; + ++ size = compressed; ++ bf = map->data; +- bf = event; +- thread->samples++; +- +- /* +- * The record from `zstd_compress` is not 8 bytes aligned, which would cause asan +- * error. We make it aligned here. +- */ +- event->data_size = compressed - sizeof(struct perf_record_compressed2); +- event->header.size = PERF_ALIGN(compressed, sizeof(u64)); +- padding = event->header.size - compressed; +- return record__write(rec, map, bf, compressed) || +- record__write(rec, map, &pad, padding); + } + + thread->samples++; +@@ -1549,7 +1536,7 @@ + + static size_t process_comp_header(void *record, size_t increment) + { ++ struct perf_record_compressed *event = record; +- struct perf_record_compressed2 *event = record; + size_t size = sizeof(*event); + + if (increment) { +@@ -1557,7 +1544,7 @@ + return increment; + } + ++ event->header.type = PERF_RECORD_COMPRESSED; +- event->header.type = PERF_RECORD_COMPRESSED2; + event->header.size = size; + + return size; +@@ -1567,7 +1554,7 @@ + void *dst, size_t dst_size, void *src, size_t src_size) + { + ssize_t compressed; ++ size_t max_record_size = PERF_SAMPLE_MAX_SIZE - sizeof(struct perf_record_compressed) - 1; +- size_t max_record_size = PERF_SAMPLE_MAX_SIZE - sizeof(struct perf_record_compressed2) - 1; + struct zstd_data *zstd_data = &session->zstd_data; + + if (map && map->file) -- cgit v1.2.3