Re: [PATCH 0/6] perf core: Read from overwrite ring buffer

From: Alexei Starovoitov
Date: Fri Jan 22 2016 - 14:38:06 EST


On Fri, Jan 22, 2016 at 12:13:48PM +0000, Wang Nan wrote:
> This is v2 of this series.
>
> Compare with v1:
>
> Fixes several bugs in v1.
>
> Corresponsing perf has finished and can be found from:
>
> https://git.kernel.org/cgit/linux/kernel/git/pi3orama/linux.git/
> branch: perf/overwrite-benchmark
>
> Some benchmarking results can be found from [1].
>
> Summary:
>
> On a PC with Intel E5-2640 0 @ 2.50GHz CPU, execute close(-1) 3000000
> times, capture raw_syscalls:* with perf into overwrite ring buffer,
> check total time (in us):
>
> MEAN STDVAR
> BASE : 879870.81 11913.13
> RAWPERF : 2603854.7 706658.4
> WRTBKWRD : 2313301.220 6727.957
> TAILSIZE : 2383051.860 5248.061
> RAWOVWRT : 2315273.180 5221.025
> RAWOVWRT*: 2323970.45 5103.39
>
> Where:
> BASE: don't use perf at all.
> RAWPERF: use non-overwrite ring buffer, perf collects all data,
> write to /dev/null
> WRTBKWRD: Use backward writing ring buffer, write from tail to head,
> never wakeup perf, collect data when exiting.
> TAILSIZE: Use tailsize ring buffer, pad 8 bytes for the size of the
> record for each event, never wakeup perf, collect data when
> exiting.
> RAWOVWRT: Use raw overwrite ring buffer, never wakeup perf, don't
> collect data at all.
> RAWOVWRT*: Same as RAWOVWRT, without this patchset.
>
> The benchmarking results shows WRTBKWRD is good enough. I suggest not
> to implement TAILSIZE and tail-header ring buffer.

yes. just drop patch 6.

> I will post the result on a smartphone next week.

great. would be interesting comparison.
overall I think it looks good.