On 12.10.2020 19:49, Alexey Budankov wrote: > > On 12.10.2020 19:09, Andi Kleen wrote: >> On Mon, Oct 12, 2020 at 11:58:58AM +0300, Alexey Budankov wrote: >>> >>> Read trace files located at data directory into tool process memory. >>> Basic analysis support of data directories is provided for report >>> mode. Raw dump (-D) and aggregated reports are available for data >>> directories, still with no memory consumption optimizations. However >>> data directories collected with --compression-level option enabled >>> can be analyzed with little less memory because trace files are >>> unmaped from tool process memory after loading collected data. >>> The implementation is based on the prototype [1], [2]. >> >> Should credit the author(s) of the prototypes. > > Sure. Will explicitly add: > > Suggested-by: Jiri Olsa <jo...@kernel.org> > Suggested-by: Namhyung Kim <namhy...@kernel.org> > > here and [PATCH v2 15/15], additionally to [1], [2] below. > > Thanks for pointing this out! > >>> >>> [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-jo...@kernel.org/ >>> >>> Signed-off-by: Alexey Budankov <alexey.budan...@linux.intel.com> >>> --- >>> tools/perf/util/session.c | 48 +++++++++++++++++++++++++++++++++++++++ >>> tools/perf/util/session.h | 1 + >>> 2 files changed, 49 insertions(+) >>> >>> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c >>> index 6afc670fdf0c..0752eec19813 100644 >>> --- a/tools/perf/util/session.c >>> +++ b/tools/perf/util/session.c >>> @@ -2212,6 +2212,17 @@ reader__process_events(struct reader *rd, struct >>> perf_session *session, >>> goto more; >>> >>> out: >>> + if (rd->unmap_file) { >>> + int i; >>> + >>> + for (i = 0; i < NUM_MMAPS; i++) { >>> + if (mmaps[i]) { >>> + munmap(mmaps[i], mmap_size); >>> + mmaps[i] = NULL; >> >> Okay so where is the mmap? Would make more sense to put that >> into the same patch as who adds the mmap. Or is the mmap >> code already in the perf source? In that case it should >> probably be some common helper with the existing users. > > That mmap is already in the code. Agree, this part of the patch > can be applied prior the whole patch set.
I take it back. Single trace file can't be unmapped yet since it also contains not only compressed records but also other records backing the data for aggregated analysis. Alexei