[PATCHv2 0/5] perf tools: Share map groups within process

From: Jiri Olsa
Date: Mon Apr 14 2014 - 11:54:58 EST


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

v2 changes:
- changing mmap groups allocation strategy - have it allocated
always when thread is created, which seems less confusing
and less error prone. The previous strategy was to allocate
it when it's actually used.
- fix test compilation for i386

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

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>
---
Arnaldo Carvalho de Melo (2):
perf tools: Allocate thread map_groups's dynamically
perf tools: Reference count map_groups objects

Jiri Olsa (3):
perf tests: Add thread maps lookup automated tests
perf tools: Share map_groups among threads of the same group
perf tests: Add map groups sharing with thread object test

tools/perf/Makefile.perf | 2 +
tools/perf/arch/x86/tests/dwarf-unwind.c | 2 +-
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 | 90 +++++++++++++++++++++++++++++++++++
tools/perf/ui/stdio/hist.c | 2 +-
tools/perf/util/event.c | 2 +-
tools/perf/util/machine.c | 11 +++++
tools/perf/util/map.c | 23 +++++++++
tools/perf/util/map.h | 12 +++++
tools/perf/util/thread.c | 52 +++++++++++++++-----
tools/perf/util/thread.h | 3 +-
14 files changed, 432 insertions(+), 16 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/