OpenBSD cvs log

created 2025-02-03T22:45:00Z
begin 2025-01-21T00:00:00Z
end 2025-01-22T00:00:00Z
path src/sys
commits 3

date 2025-01-21T17:40:57Z
author mvs
files src/sys/net/if.c log diff annotate
src/sys/net/if_var.h log diff annotate
message Copy if_data stuff to ifnet descriptor.

'if_data' structure contains interface data like type or baudrate mixed
with statistics counters. Each interface descriptor 'ifnet' contains the
instance of 'if_data' for deliver to the userland by request. It is not
clean which lock protects this data. Some old drivers rely on kernel
lock, some rely on net lock, ifioctl() relies on both. Moreover, network
interface could have per-cpu counters, but in such case both `if_data'
counters and per-cpu counters will be used by some pseudo drivers like
bridge(4).

Copy 'if_data' stuff into 'ifnet' descriptor to separate interface
counters from the rest data. This separation allows to start using of
consistent locking for such data.

Note, non per-cpu counters represented as array and accessed in the
per-cpu counters style to unify future usage paths.

ok bluhm

date 2025-01-21T17:41:39Z
author mvs
files src/sys/kern/uipc_socket.c log diff annotate
message Start SB_MTXLOCK logic cleaning. Sockets of all types switched to fine
grained locks for socket buffers, so SB_MTXLOCK could gone. This time only
from kern/uipc_socket.c

ok bluhm

date 2025-01-21T20:13:19Z
author mvs
files src/sys/dev/wscons/wsevent.c log diff annotate
src/sys/dev/wscons/wseventvar.h log diff annotate
src/sys/dev/wscons/wskbd.c log diff annotate
message Unlock wskbd(4) kqueue filterops.

Introduce the `ws_mtx' mutex(9) to protects wseventvar structure fields.
To reduce diffs size, unlock wscons(4) devices step-by-step, temporary
use dedicated `wsevent_klistops' to take kernel lock before mutex for
the non mp-safe drivers. It will be removed after complete wsevent
unlocking.

Note, pgsigio() takes kernel lock deep within and can't be called with
mutex(9) held, so call it lockless. This the compromise to make step
forward.

ok kirill bluhm