Re: [PATCH] perf tool: Round mmap pages to power 2

From: Adrian Hunter
Date: Mon Nov 11 2013 - 02:48:55 EST


On 08/11/13 16:41, David Ahern wrote:
> 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)


Your code looks like out_pages = 0 selects write() instead of mmap().
So it you can't set out_pages = 0, how do you select write()?


> 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
>

--
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/