CVSROOT: /cvs Module name: src Changes by: an...@cvs.openbsd.org 2020/08/01 02:40:21
Modified files: share/man/man4 : kcov.4 share/man/man9 : Makefile sys/dev : kcov.c sys/kern : kern_task.c kern_timeout.c sys/sys : kcov.h task.h timeout.h Added files: share/man/man9 : kcov_remote_register.9 Log message: Add support for remote coverage to kcov. Remote coverage is collected from threads other than the one currently having kcov enabled. A thread with kcov enabled occasionally delegates work to another thread, collecting coverage from such threads improves the ability of syzkaller to correlate side effects in the kernel caused by issuing a syscall. Remote coverage is divided into subsystems. The only supported subsystem right now collects coverage from scheduled tasks and timeouts on behalf of a kcov enabled thread. In order to make this work `struct task' and `struct timeout' must be extended with a new field keeping track of the process that scheduled the task/timeout. Both aforementioned structures have therefore increased with the size of a pointer on all architectures. The kernel API is documented in a new kcov_remote_register(9) manual. Remote coverage is also supported by kcov on NetBSD and Linux. ok mpi@