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

s390: enable kcov support

Now that hopefully all inline assemblies have been converted to single
basic blocks we can enable kcov on s390.

Note that this patch does not disable as many files on s390 like the
x86 variant does. Right now I didn't see a reason to do that, however
additional files or directories can be excluded at any time.

The runtime overhead seems to be quite high.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Heiko Carstens and committed by
Martin Schwidefsky
907fa061 e238c15e

+10
+1
arch/s390/Kconfig
··· 72 72 select ARCH_HAS_DEVMEM_IS_ALLOWED 73 73 select ARCH_HAS_ELF_RANDOMIZE 74 74 select ARCH_HAS_GCOV_PROFILE_ALL 75 + select ARCH_HAS_KCOV 75 76 select ARCH_HAS_SG_CHAIN 76 77 select ARCH_HAVE_NMI_SAFE_CMPXCHG 77 78 select ARCH_INLINE_READ_LOCK
+2
arch/s390/boot/compressed/Makefile
··· 4 4 # create a compressed vmlinux image from the original vmlinux 5 5 # 6 6 7 + KCOV_INSTRUMENT := n 8 + 7 9 targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 8 10 targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4 9 11 targets += misc.o piggy.o sizes.h head.o
+3
arch/s390/kernel/Makefile
··· 2 2 # Makefile for the linux kernel. 3 3 # 4 4 5 + KCOV_INSTRUMENT_early.o := n 6 + KCOV_INSTRUMENT_sclp.o := n 7 + 5 8 ifdef CONFIG_FUNCTION_TRACER 6 9 # Don't trace early setup code and tracing code 7 10 CFLAGS_REMOVE_early.o = $(CC_FLAGS_FTRACE)
+2
arch/s390/kernel/vdso32/Makefile
··· 1 1 # List of files in the vdso, has to be asm only for now 2 2 3 + KCOV_INSTRUMENT := n 4 + 3 5 obj-vdso32 = gettimeofday.o clock_getres.o clock_gettime.o note.o getcpu.o 4 6 5 7 # Build rules
+2
arch/s390/kernel/vdso64/Makefile
··· 1 1 # List of files in the vdso, has to be asm only for now 2 2 3 + KCOV_INSTRUMENT := n 4 + 3 5 obj-vdso64 = gettimeofday.o clock_getres.o clock_gettime.o note.o getcpu.o 4 6 5 7 # Build rules