Re: [PATCH v3 0/8] perf session: Extend reader object to allow multiple readers

From: Bayduraev, Alexey V
Date: Wed Oct 13 2021 - 05:17:16 EST


On 13.10.2021 12:06, Alexey Bayduraev wrote:> Changes in v4:> - set/unset active_decomp within reader__process_events
Sorry,

The subject should of course be [PATCH v4 0/8] ...

Regards,
Alexey

>
> Changes in v3:
> - removed struct reader_state in [PATCH v3 1/8]
> - fixed repeating code in [PATCH v3 2/8]
> - split [PATCH v2 4/5] to [PATCH v3 4/8], [PATCH v3 5/8]
> - split [PATCH v2 5/5] to [PATCH v3 6/8] - [PATCH v3 8/8]
>
> Changes in v2:
> - introduced struct decomp_data suggested by Jiri Olsa
> - removed unnecessary [PATCH v1 1/6]
> - removed unnecessary extra line in [PATCH v2 4/5]
> - removed unnecessary reader_state.eof flag in [PATCH v2 5/5]
>
> Patchset moves state info and decompressor object into reader object
> that made possible to split reader__process_events function into three
> logical parts: init, map/unmap and single event reader which are used
> in events reader loop. This approach allows reading multiple trace
> files at the same time.
>
> The design and implementation are based on the prototype [1], [2].
> The patchset was separated from [3].
>
> Tested:
>
> tools/perf/perf record -o prof.data -- matrix.gcc.g.O3
> tools/perf/perf record -o prof.data -z -- matrix.gcc.g.O3
> tools/perf/perf report -i prof.data
> tools/perf/perf report -i prof.data --call-graph=callee
> tools/perf/perf report -i prof.data --stdio --header
> tools/perf/perf report -i prof.data -D --header
>
> [1] git clone https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git -b perf/record_threads
> [2] https://lore.kernel.org/lkml/20180913125450.21342-1-jolsa@xxxxxxxxxx/
> [3] https://lore.kernel.org/lkml/cover.1629186429.git.alexey.v.bayduraev@xxxxxxxxxxxxxxx/
>
> Alexey Bayduraev (8):
> perf session: Move all state items to reader object
> perf session: Introduce decompressor in reader object
> perf session: Move init/release code to separate functions
> perf session: Move map code to separate function
> perf session: Move unmap code to reader__mmap
> perf session: Move event read code to separate function
> perf session: Introduce reader return codes
> perf session: Introduce reader EOF function
>
> tools/perf/util/session.c | 193 ++++++++++++++++++++++++++------------
> tools/perf/util/session.h | 10 +-
> 2 files changed, 141 insertions(+), 62 deletions(-)
>