Re: [PATCH v1] perf session: fix decompression of PERF_RECORD_COMPRESSED records

From: Alexey Budankov
Date: Fri Nov 15 2019 - 12:09:26 EST



On 15.11.2019 18:11, Jiri Olsa wrote:
> On Fri, Nov 15, 2019 at 12:05:14PM +0300, Alexey Budankov wrote:
<SNIP>
>> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
>> index f07b8ecb91bc..3f6f812ec4ed 100644
>> --- a/tools/perf/util/session.c
>> +++ b/tools/perf/util/session.c
>> @@ -1957,9 +1957,31 @@ static int __perf_session__process_pipe_events(struct perf_session *session)
>> return err;
>> }
>>
>> +static union perf_event *
>> +prefetch_event(char *buf, u64 head, size_t mmap_size,
>> + bool needs_swap, union perf_event *ret);
>
> why not move prefetch_event definition in here?
> I don't see any need for the static declaration..

It is just for the sake of more readable patch formatting
and, yes, could be avoided and replaced by the definition.

>
>> +
>> static union perf_event *
>> fetch_mmaped_event(struct perf_session *session,
>> u64 head, size_t mmap_size, char *buf)
>> +{
>> + return prefetch_event(buf, head, mmap_size,
>> + session->header.needs_swap,
>> + ERR_PTR(-EINVAL));
>> +}
>> +
>> +static union perf_event *
>> +fetch_decomp_event(struct perf_session *session,
>> + u64 head, size_t mmap_size, char *buf)
>> +{
>
> if this is decomp specific, it could take 'struct decomp*' as argument

Well, it makes sense. whole session object is not required here.
Just session->header.needs_swap could be passed as a param.
Shall we make it like this?

static union perf_event *
fetch_decomp_event(u64 head, size_t mmap_size, char *buf, bool needs_swap)

>
>> + return prefetch_event(buf, head, mmap_size,
>> + session->header.needs_swap,
>> + NULL);
>> +}
>> +
>> +static union perf_event *
>> +prefetch_event(char *buf, u64 head, size_t mmap_size,
>> + bool needs_swap, union perf_event *ret)
>> {
>
> 'error' might be more suitable then ret in here

Accepted for v2.

~Alexey

>
> thanks,
> jirka
>
>