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)