Re: [bpf] af7ec13833: will-it-scale.per_process_ops -2.5% regression

From: Rong Chen
Date: Fri Jul 03 2020 - 01:55:05 EST




On 6/29/20 11:10 PM, Yonghong Song wrote:


On 6/28/20 1:50 AM, kernel test robot wrote:
Greeting,

FYI, we noticed a -2.5% regression of will-it-scale.per_process_ops due to commit:


commit: af7ec13833619e17f03aa73a785a2f871da6d66b ("bpf: Add bpf_skc_to_tcp6_sock() helper")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

One of previous emails claims that
    commit: 492e639f0c222784e2e0f121966375f641c61b15 ("bpf: Add bpf_seq_printf and bpf_seq_write helpers")
is reponsible for 2.5% improvement for will-it-scale.per_process_ops, which I believe is false.

This commit should not cause regression.

Probably the variation of performance is caused by test environment which you may want to investigate further to reduce false alarming.
Thanks!

Hi Yonghong,

It's a function align issue, the commit effects the align of functions which causes a little regression,
we force to set -falign-functions=32 in KBUILD_CFLAGS and the regression is gone:

diff --git a/Makefile b/Makefile
index 70def4907036c..9746afa4edc21 100644
--- a/Makefile
+++ b/Makefile
@@ -476,7 +476,7 @@ LINUXINCLUDE    := \
                $(USERINCLUDE)

 KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
-KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
+KBUILD_CFLAGS   := -Wall -Wundef -falign-functions=32 -Werror=strict-prototypes -Wno-trigraphs \
                   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
                   -Werror=implicit-function-declaration -Werror=implicit-int \
                   -Wno-format-security \


Best Regards,
Rong Chen



in testcase: will-it-scale
on test machine: 192 threads Intel(R) Xeon(R) Platinum 9242 CPU @ 2.30GHz with 192G memory
with following parameters:

    nr_task: 16
    mode: process
    test: mmap1
    cpufreq_governor: performance
    ucode: 0x5002f01

test-description: Will It Scale takes a testcase and runs it from 1 through to n parallel copies to see if the testcase will scale. It builds both a process and threads based test in order to see any differences between the two.
test-url: https://github.com/antonblanchard/will-it-scale



If you fix the issue, kindly add following tag
Reported-by: kernel test robot <rong.a.chen@xxxxxxxxx>


Details are as below:
[...]