timeout_barrier(9), timeout_del_barrier(9): remove kernel lock
authorcheloha <cheloha@openbsd.org>
Tue, 11 May 2021 13:29:25 +0000 (13:29 +0000)
committercheloha <cheloha@openbsd.org>
Tue, 11 May 2021 13:29:25 +0000 (13:29 +0000)
commitc34a0df36ba0cc1c1ddc1785bb2cf469469374a3
treea7c8557edfa410b9b3e70a64decd5b17ecb912df
parent02e2298159014b650e254057e73e608fac26972d
timeout_barrier(9), timeout_del_barrier(9): remove kernel lock

In timeout_barrier(9) we take/release the kernel lock to ensure that the
given timeout has finished running (if it had been running at all).

This approach is inefficient.  If we put a barrier timeout on the
queue and wait for it to run in cond_wait(9) we can block instead of
spinning for the kernel lock.  We already do this for process-context
timeouts in timeout_barrier(9) anyway.

Discussed with dlg@, visa@, and mpi@.

ok dlg@
share/man/man9/timeout.9
sys/kern/kern_timeout.c