Mark `so_rcv' sockbuf of udp(4) sockets as SB_OWNLOCK.
authormvs <mvs@openbsd.org>
Sun, 31 Mar 2024 13:50:00 +0000 (13:50 +0000)
committermvs <mvs@openbsd.org>
Sun, 31 Mar 2024 13:50:00 +0000 (13:50 +0000)
commitc80eb4865bece54c3611046d77ba12a2c1f53f32
tree38a29ceb37885ced38006dfa386d493fd0ae90c2
parentabe7e67aec85864593aa60a2bbef8e25eefc70c9
Mark `so_rcv' sockbuf of udp(4) sockets as SB_OWNLOCK.

sbappend*() and soreceive() of SB_MTXLOCK marked sockets uses `sb_mtx'
mutex(9) for protection, meanwhile buffer usage check and corresponding
sbwait() sleep still serialized by solock(). Mark udp(4) as SB_OWNLOCK
to avoid solock() serialization and rely to `sb_mtx' mutex(9). The
`sb_state' and `sb_flags' modifications must be protected by `sb_mtx'
too.

ok bluhm
sys/kern/sys_socket.c
sys/kern/uipc_socket.c
sys/kern/uipc_socket2.c
sys/nfs/nfs_socket.c
sys/nfs/nfs_syscalls.c