Skip to content

Commit

Permalink
perf tools: Synthesize anon MMAP records again
Browse files Browse the repository at this point in the history
When introducing the PERF_RECORD_MMAP2 in:

5c5e854 perf tools: Add attr->mmap2 support

A check for the number of entries parsed by sscanf was introduced that
assumed all of the 8 fields needed to be correctly parsed so that
particular /proc/pid/maps line would be considered synthesizable.

That broke anon records synthesizing, as it doesn't have the 'execname'
field.

Fix it by keeping the sscanf return check, changing it to not require
that the 'execname' variable be parsed, so that the preexisting logic
can kick in and set it to '//anon'.

This should get things like JIT profiling working again.

Signed-off-by: Don Zickus <[email protected]>
Cc: Bill Gray <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Joe Mario <[email protected]>
Cc: Richard Fowles <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/n/[email protected]
[ commit log message is mine, dzickus reported the problem with a patch ]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
  • Loading branch information
dzickusrh authored and acmel committed Nov 14, 2013
1 parent ea432a8 commit 9d4ecc8
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions tools/perf/util/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,10 @@ static int perf_event__synthesize_mmap_events(struct perf_tool *tool,
&event->mmap.start, &event->mmap.len, prot,
&event->mmap.pgoff,
execname);

if (n != 5)
/*
* Anon maps don't have the execname.
*/
if (n < 4)
continue;
/*
* Just like the kernel, see __perf_event_mmap in kernel/perf_event.c
Expand Down

0 comments on commit 9d4ecc8

Please sign in to comment.