On Mon, Feb 11, 2019 at 11:25:00PM +0300, Alexey Budankov wrote:

SNIP

>  size_t perf_session__zstd_copy(void *to __maybe_unused,
> @@ -533,6 +646,8 @@ void perf_tool__fill_defaults(struct perf_tool *tool)
>               tool->time_conv = process_event_op2_stub;
>       if (tool->feature == NULL)
>               tool->feature = process_event_op2_stub;
> +     if (tool->compressed == NULL)
> +             tool->compressed = perf_session__process_compressed_event;
>  }
>  
>  static void swap_sample_id_all(union perf_event *event, void *data)
> @@ -1469,7 +1584,8 @@ static s64 perf_session__process_user_event(struct 
> perf_session *session,
>       int fd = perf_data__fd(session->data);
>       int err;
>  
> -     dump_event(session->evlist, event, file_offset, &sample);
> +     if (event->header.type != PERF_RECORD_COMPRESSED)
> +             dump_event(session->evlist, event, file_offset, &sample);
>  
>       /* These events are processed right away */
>       switch (event->header.type) {
> @@ -1522,6 +1638,11 @@ static s64 perf_session__process_user_event(struct 
> perf_session *session,
>               return tool->time_conv(session, event);
>       case PERF_RECORD_HEADER_FEATURE:
>               return tool->feature(session, event);
> +     case PERF_RECORD_COMPRESSED:
> +             err = tool->compressed(session, event, file_offset);
> +             if (err)
> +                     dump_event(session->evlist, event, file_offset, 
> &sample);

I'm not sure about having compressed callback at all, but maybe
it could be usefull for inject, to get the compressed data..?

I assume inject is working now and it will get you the uncompressed
perf.data?

jirka

Reply via email to