CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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@