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@

Reply via email to