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 <dzic...@redhat.com> 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 <jo...@redhat.com> > Cc: Don Zickus <dzic...@redhat.com> > Cc: Corey Ashford <cjash...@linux.vnet.ibm.com> > Cc: David Ahern <dsah...@gmail.com> > Cc: Frederic Weisbecker <fweis...@gmail.com> > Cc: Ingo Molnar <mi...@kernel.org> > Cc: Namhyung Kim <namhy...@kernel.org> > Cc: Paul Mackerras <pau...@samba.org> > Cc: Peter Zijlstra <a.p.zijls...@chello.nl> > Cc: Arnaldo Carvalho de Melo <a...@ghostprotocols.net> > --- > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/