lkml.org 
[lkml]   [2013]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] perf tool: Round mmap pages to power 2
On 11/8/13, 2:11 AM, Adrian Hunter wrote:
> This prevents:
>
> --out-pages=0
>
> from working e.g.
>
> tools/perf/perf record -vv --out-pages=0 uname
> rounding mmap pages size to 4096 (1 pages)
>
> Although without this patch:
>
> tools/perf/perf record -vv --out-pages=0 uname
> --mmap_pages/-m value must be a power of two.
> usage: perf record [<options>] [<command>]
> or: perf record [<options>] -- <command> [<options>]
>
> --out-pages <pages>
> Number of pages or size with units to use for
> output (default 64M)
>
> Also there is:
>
> tools/perf/perf record -vv --no-out-pages uname
> Segmentation fault (core dumped)

This is problem with perf_evlist__parse_mmap_pages(); same thing happens
with --no-map-pages.

With the attached both round a 0 up to 1 page:

[daahern@nxos-vdc-dev3 perf]$ perf record --out-pages 0 uname
rounding mmap pages size to 4096 (1 pages)
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.008 MB perf.data (~339 samples) ]

[daahern@nxos-vdc-dev3 perf]$ perf record --mmap-pages 0 uname
rounding mmap pages size to 4096 (1 pages)
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.008 MB perf.data (~339 samples) ]

[daahern@nxos-vdc-dev3 perf]$ perf record --no-mmap-pages uname

usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]

-m, --mmap-pages <pages>
number of mmap data pages
David

>From fc7c5a6b2b47a2e7a04613b4e82e478a0dcabf42 Mon Sep 17 00:00:00 2001
From: David Ahern <dsahern@gmail.com>
Date: Fri, 8 Nov 2013 07:37:43 -0700
Subject: [PATCH] perf record: Fix segfault with --no-mmap-pages

Adrian reported a segfault when using --no-out-pages
$ tools/perf/perf record -vv --no-out-pages uname
Segmentation fault (core dumped)

The same occurs with --no-mmap-pages. Fix by checking that str is non-NULL
before parsing it.

Reported-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
---
tools/perf/util/evlist.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 9ec3a5a45f22..1f103616d906 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -718,6 +718,9 @@ int perf_evlist__parse_mmap_pages(const struct option *opt, const char *str,
{ .tag = 0 },
};

+ if (str == NULL)
+ return -1;
+
val = parse_tag_value(str, tags);
if (val != (unsigned long) -1) {
/* we got file size value */
--
1.8.3.4 (Apple Git-47)
\
 
 \ /
  Last update: 2013-11-08 16:01    [W:0.063 / U:0.368 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site