Re: [PATCH] perf record: Allow poll timeout to be specified

From: David Ahern
Date: Wed Mar 25 2015 - 10:38:06 EST


On 3/25/15 6:38 AM, Jiri Olsa wrote:
On Tue, Mar 24, 2015 at 12:09:48PM -0400, David Ahern wrote:
Record currently wakes up based on watermarks to read events from the mmaps and
write them out to the file. The result is a file that can have large blocks of
events per mmap before a finished round event is added to the stream. This in
turn affects the quantity of events that have to be passed through the ordered
events queue before results can be displayed to the user. For commands like
perf-script this can lead to long unnecessarily long delays before a user gets
output. Large systems (e.g, 1024 cpus) further compound this effect. I have seen
instances where I have to wait 45 minutes for perf-script to process a 5GB file
before any events are shown.

so you have pipe to perf script, right?

$ perf record ....
$ perf script ...
<wait an eternity>
data



This patch adds an option to perf-record to allow a user to specify the
poll timeout in msec. For example using 100 msec timeouts similar to perf-top
means the mmaps are traversed much more frequently leading to a smoother
analysis side.

there's also the '--no-buffering' option that sets:

attr->watermark = 0;
attr->wakeup_events = 1;

but that's just the other edge, which is not what you'd want

right, that is the other extreme. record would never go to sleep.


I think it's good to have user side configurable as well

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka


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