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

From: Alexei Starovoitov
Date: Mon Jan 25 2016 - 19:24:13 EST


On Mon, Jan 25, 2016 at 08:33:48AM +0000, Wang Nan wrote:
> This is the v3 of this series. Compare with v2, tailsize method is
> removed, ioctl command PERF_EVENT_IOC_PAUSE_OUTPUT is changed to
> _IOW('$', 9, __u32) since it has an input value, commit message
> is slightly adjusted.
>
> New test result on ARM64 is below (x86_64 result is copied from previous
> email, test method is described in previous version [1]):
>
> x86_64 | ARM64
> -----------------------+---------------------
> MEAN STDVAR | MEAN STDVAR
> BASE : 879870.81 11913.13 | 808302.67 6951.47
> RAWPERF : 2603854.70 706658.40 | 3461675.12 54075.69
> WRTBKWRD : 2313301.22 6727.96 | 3350177.98 23125.48
> TAILSIZE : 2383051.86 5248.06 | 3556496.56 24802.17
> RAWOVWRT : 2315273.18 5221.03 | 3458767.49 41560.32
> RAWOVWRT*: 2323970.45 5103.39 | 3438967.06 34095.83
>
> ARM64 platform is a smartphone with 8 Hisilicon arm64 cores
> (big/little).
>
> Benckmarking result on both architechure support removing tailsize
> method because its performance penalty is higher than WRTBKWRD. Also, it
> seems we don't need to consider tailheader method (putting whole header
> at the end of records, kernel write to the ring buffer from beginning to
> end), because the above result shows WRTBKWRD and RAWOVWRT are similar,
> and tailheader is impossible to outperform RAWOVWRT in theory.

looks ok to me.