selftests/fpu: Add an FPU selftest
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>
Thu, 18 Jun 2020 14:37:37 +0000 (16:37 +0200)
committerBorislav Petkov <bp@suse.de>
Mon, 29 Jun 2020 08:02:23 +0000 (10:02 +0200)
commit4185b3b92792eaec5869266e594338343421ffb0
treeac708daf001002b2058ff899c74462500684e85c
parent7ad816762f9bf89e940e618ea40c43138b479e10
selftests/fpu: Add an FPU selftest

Add a selftest for the usage of FPU code in kernel mode.

Currently only implemented for x86. In the future, kernel FPU testing
could be unified between the different architectures supporting it.

 [ bp:

  - Split out from a conglomerate patch, put comments over statements.
  - run the test only on debugfs write.
  - Add bare-minimum run_test_fpu.sh, run 1000 iterations on all CPUs
    by default.
  - Add conditionally -msse2 so that clang doesn't generate library
    calls.
  - Use cc-option to detect gcc 7.1 not supporting -mpreferred-stack-boundary=3 (amluto).
  - Document stuff so that we don't forget.
  - Fix:
     ld: lib/test_fpu.o: in function `test_fpu_get':
     >> test_fpu.c:(.text+0x16e): undefined reference to `__sanitizer_cov_trace_cmpd'
     >> ld: test_fpu.c:(.text+0x1a7): undefined reference to `__sanitizer_cov_trace_cmpd'
     ld: test_fpu.c:(.text+0x1e0): undefined reference to `__sanitizer_cov_trace_cmpd'
  ]

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Petteri Aimonen <jpa@git.mail.kapsi.fi>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://lkml.kernel.org/r/20200624114646.28953-3-bp@alien8.de
lib/Kconfig.debug
lib/Makefile
lib/test_fpu.c [new file with mode: 0644]
tools/testing/selftests/Makefile
tools/testing/selftests/fpu/.gitignore [new file with mode: 0644]
tools/testing/selftests/fpu/Makefile [new file with mode: 0644]
tools/testing/selftests/fpu/run_test_fpu.sh [new file with mode: 0755]
tools/testing/selftests/fpu/test_fpu.c [new file with mode: 0644]