Module Name: src Committed By: kamil Date: Sat Feb 23 03:10:06 UTC 2019
Modified Files: src/distrib/sets/lists/comp: mi src/distrib/sets/lists/man: mi src/distrib/sets/lists/tests: module.mi src/etc: MAKEDEV.tmpl src/share/man/man4: Makefile src/share/mk: bsd.sys.mk src/sys/arch/amd64/conf: GENERIC src/sys/conf: files majors ssp.mk src/sys/kern: files.kern src/sys/sys: Makefile src/tests/modules: Makefile Added Files: src/share/man/man4: kcov.4 src/sys/kern: subr_kcov.c src/sys/sys: kcov.h src/tests/modules: t_kcov.c Log Message: Add KCOV - kernel code coverage tracing device The KCOV driver implements collection of code coverage inside the kernel. It can be enabled on a per process basis from userland, allowing the kernel program counter to be collected during syscalls triggered by the same process. The device is oriented towards kernel fuzzers, in particular syzkaller. Currently the only supported coverage type is -fsanitize-coverage=trace-pc. The KCOV driver was initially developed in Linux. A driver based on the same concept was then implemented in FreeBSD and OpenBSD. Documentation is borrowed from OpenBSD and ATF tests from FreeBSD. This patch has been prepared by Siddharth Muralee, improved by <maxv> and polished by myself before importing into the mainline tree. All ATF tests pass. To generate a diff of this commit: cvs rdiff -u -r1.2258 -r1.2259 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.1637 -r1.1638 src/distrib/sets/lists/man/mi cvs rdiff -u -r1.16 -r1.17 src/distrib/sets/lists/tests/module.mi cvs rdiff -u -r1.197 -r1.198 src/etc/MAKEDEV.tmpl cvs rdiff -u -r1.677 -r1.678 src/share/man/man4/Makefile cvs rdiff -u -r0 -r1.1 src/share/man/man4/kcov.4 cvs rdiff -u -r1.290 -r1.291 src/share/mk/bsd.sys.mk cvs rdiff -u -r1.516 -r1.517 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.1229 -r1.1230 src/sys/conf/files cvs rdiff -u -r1.80 -r1.81 src/sys/conf/majors cvs rdiff -u -r1.3 -r1.4 src/sys/conf/ssp.mk cvs rdiff -u -r1.32 -r1.33 src/sys/kern/files.kern cvs rdiff -u -r0 -r1.1 src/sys/kern/subr_kcov.c cvs rdiff -u -r1.168 -r1.169 src/sys/sys/Makefile cvs rdiff -u -r0 -r1.1 src/sys/sys/kcov.h cvs rdiff -u -r1.14 -r1.15 src/tests/modules/Makefile cvs rdiff -u -r0 -r1.1 src/tests/modules/t_kcov.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.