Re: [PATCH 0/6] perf tools: Share map groups within process

From: Don Zickus
Date: Tue Mar 18 2014 - 15:25:34 EST


On Tue, Mar 18, 2014 at 03:46:50PM +0100, Jiri Olsa wrote:
> hi,
> this patchset moves thread's map_groups to be dynamically
> allocated and shared within process threads.
>
> The main benefit would be to be able to look up memory
> map from any thread that belongs to the process.
>
> This implements one of the solution ideas for issue
> described by Don in following thread:
> http://marc.info/?l=linux-kernel&m=139403876017159&w=2
>
> RFC changes:
> - added automated test for thread map groups get/put methods
> - fix reference count for case described by Namhyung
> - rename the mmap-events.c test to mmap-thread-lookup.c
> - added PROT_EXEC to mmap call in tests/mmap-thread-lookup.c
> as it's not implied by default on all archs (Namhyung)
> - lazy mg allocation in thread__find_addr_map (Namhyung)
> - fix compilation failures (Arnaldo)
>
> also available in here:
> git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
> perf/core_mmaps

I ran this patchset through my multi-threaded java test (SPECJBB) and saw
no issues. The threads seemed to have matched with their pids properly.
I even took an old perf.data file (with old synthesized mmap2 events using
pids) and the tids from the samples matched the pids correctly (for what
it is worth).

So I will add my

Tested-by: Don Zickus <dzickus@xxxxxxxxxx>


I don't know the code well enough to know if it is right or not, but my
quick review didn't see anything wrong.

Cheers,
Don

>
> thanks,
> jirka
>
>
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Don Zickus <dzickus@xxxxxxxxxx>
> Cc: Corey Ashford <cjashfor@xxxxxxxxxxxxxxxxxx>
> Cc: David Ahern <dsahern@xxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>
> ---
> Jiri Olsa (6):
> perf tests: Add thread maps lookup automated tests
> perf tools: Remove thread__find_map function
> perf tools: Allocate thread map_groups dynamically
> perf tools: Add machine pointer into thread struct
> perf tools: Share process map groups within process threads
> perf tests: Add map groups sharing with thread object test
>
> tools/perf/Makefile.perf | 2 +
> tools/perf/arch/x86/tests/dwarf-unwind.c | 9 +++-
> tools/perf/perf.h | 6 +++
> tools/perf/tests/builtin-test.c | 8 ++++
> tools/perf/tests/mmap-thread-lookup.c | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> tools/perf/tests/tests.h | 2 +
> tools/perf/tests/thread-mg-share.c | 110 +++++++++++++++++++++++++++++++++++++++++++
> tools/perf/ui/stdio/hist.c | 9 +++-
> tools/perf/util/event.c | 10 +++-
> tools/perf/util/machine.c | 8 ++--
> tools/perf/util/map.h | 3 +-
> tools/perf/util/thread.c | 120 +++++++++++++++++++++++++++++++++++++++++-----
> tools/perf/util/thread.h | 19 ++++----
> 13 files changed, 508 insertions(+), 31 deletions(-)
> create mode 100644 tools/perf/tests/mmap-thread-lookup.c
> create mode 100644 tools/perf/tests/thread-mg-share.c
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/