Re: [PATCH 3/5] perf core: Prepare writing into ring buffer from end

From: Wangnan (F)
Date: Sun Mar 27 2016 - 21:08:13 EST




On 2016/3/27 23:30, pi3orama wrote:

åèæç iPhone

å 2016å3æ27æïäå11:20ïPeter Zijlstra <peterz@xxxxxxxxxxxxx> åéï

On Fri, Mar 25, 2016 at 10:14:36PM +0800, Wangnan (F) wrote:
I think you enabled some unusual config options?
x86_64-defconfig

You must enabled CONFIG_OPTIMIZE_INLINING. Now I get similar result:
It has that indeed.

After enabling CONFIG_OPTIMIZE_INLINING:

Test its performance by calling 'close(-1)' for 3000000 times and
use 'perf record -o /dev/null -e raw_syscalls:* test-ring-buffer' to
capture system calls:

MEAN STDVAR
BASE 800077.1 23448.13
RAWPERF.PRE 2465858.0 603473.70
RAWPERF.POST 2471925.0 609437.60

Considering the high stdvar, after applying this patch the performance
is not change.
Why is your variance so immense? And doesn't that render the
measurements pointless?

For some unknown reason, about
10% of these results raises 2 times of normal
results. Say, "normal results" are about
2200000, but those "outliers" are about
4400000 (I can't access raw data now).
Variance becomes much smaller if I remove
those outliers.

After manually removing outliners (remove 10 outliners from 100 raw
data points in each data set):


MEAN STDVAR
BASE 800077.1 23448.13
RAWPERF.PRE 2265741.0 10421.35
RAWPERF.POST 2269826.0 10507.45

Thank you.

I guess the outliers is caused by some type
of lock stepping? No clue about it.

Thank you.