Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: vDSO: build tests with O2 optimization

Without -O2, the generated code for testing chacha function is awful.
GCC even implements rol32() as a function of 20 instructions instead of
just using the rotlwi instruction.

~# time ./vdso_test_chacha
TAP version 13
1..1
ok 1 chacha: PASS
real 0m 37.16s
user 0m 36.89s
sys 0m 0.26s

Several other selftests directory add -O2, and the kernel is also
always built with optimisation active. Do the same for vDSO selftests.

With this patch the time is reduced by approximately 15%.

~# time ./vdso_test_chacha
TAP version 13
1..1
ok 1 chacha: PASS
real 0m 32.09s
user 0m 31.86s
sys 0m 0.22s

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

authored by

Christophe Leroy and committed by
Jason A. Donenfeld
ecb8bd70 18efd0b1

+1 -1
+1 -1
tools/testing/selftests/vDSO/Makefile
··· 14 14 TEST_GEN_PROGS += vdso_test_chacha 15 15 endif 16 16 17 - CFLAGS := -std=gnu99 17 + CFLAGS := -std=gnu99 -O2 18 18 19 19 ifeq ($(CONFIG_X86_32),y) 20 20 LDLIBS += -lgcc_s