2014-04-09 02:17:47

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH 2/6] perf: Update mmap2 interface with protection and flag bits

On Mon, 24 Mar 2014 15:34:32 -0400, Don Zickus wrote:
> The kernel piece passes more info now. Update the perf tool to reflect
> that and adjust the synthesized maps to play along.
>
> Signed-off-by: Don Zickus <[email protected]>
> ---
> tools/perf/util/event.c | 23 +++++++++++++++++++++--
> tools/perf/util/event.h | 2 ++
> tools/perf/util/machine.c | 4 +++-
> tools/perf/util/map.c | 4 +++-
> tools/perf/util/map.h | 4 +++-
> 5 files changed, 32 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
> index 9d12aa6..6b8646c 100644
> --- a/tools/perf/util/event.c
> +++ b/tools/perf/util/event.c
> @@ -1,4 +1,5 @@
> #include <linux/types.h>
> +#include <sys/mman.h>
> #include "event.h"
> #include "debug.h"
> #include "hist.h"
> @@ -212,6 +213,21 @@ int perf_event__synthesize_mmap_events(struct perf_tool *tool,
> else
> event->header.misc = PERF_RECORD_MISC_GUEST_USER;
>
> + /* map protection and flags bits */
> + event->mmap2.prot = 0;
> + event->mmap2.flags = 0;
> + if (prot[0] == 'r')
> + event->mmap2.prot |= PROT_READ;
> + if (prot[1] == 'w')
> + event->mmap2.prot |= PROT_WRITE;
> + if (prot[2] == 'x')
> + event->mmap2.prot |= PROT_EXEC;
> +
> + if (prot[3] == 's')
> + event->mmap2.flags |= MAP_SHARED;
> + else
> + event->mmap2.flags |= MAP_PRIVATE;
> +

So you need to synthesize a PERF_RECORD_MMAP2 event then. The
mmap_event and mmap2_event shares same fields util ->pgoff only. So
copying to mmap.filename will overwrite other bits in mmap2.

Thanks,
Namhyung


2014-04-09 02:20:37

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH 2/6] perf: Update mmap2 interface with protection and flag bits

On Wed, 09 Apr 2014 11:17:44 +0900, Namhyung Kim wrote:
> So you need to synthesize a PERF_RECORD_MMAP2 event then. The
> mmap_event and mmap2_event shares same fields util ->pgoff only. So
> copying to mmap.filename will overwrite other bits in mmap2.

Oops, missed patch 3/3 already does it. Sorry for noise.

Thanks,
Namhyung