OpenBSD cvs log

created 2025-01-11T17:09:21Z
begin 2025-01-05T00:00:00Z
end 2025-01-06T00:00:00Z
path src/sys
commits 5

date 2025-01-05T11:33:45Z
author mvs
files src/sys/kern/uipc_syscalls.c log diff annotate
message Unlock accept(4) for tcp sockets.

Makes sense because accept(2) could be fast path. tcp_accept() is the
only in_setpeeraddr() which copies `inp_fport' and `inp_faddr' to passed
mbuf(9). Shared netlock with `so_lock' taken is pretty enough, but both
sockets should be locked simultaneously.

So yet another solock() variation. The second arg of doaccept_so*lock()
controls shared netlock acquisition and release. tcp(4) sockets are
PR_MPSOCKET sockets, so soleep_nsec() will be happy. We have some raw
inet6 sockets which are not PR_MPSOCKET, but they never follow this
path.

Note, we modify `so_qlen' of listening socket but filt_soread() takes
only shared netlock. This should be enough because we cache `so_qlen'
to local variable.

ok bluhm

date 2025-01-05T12:10:39Z
author bluhm
files src/sys/netinet/in_pcb.h log diff annotate
message Reorder struct inpcb fields and shorten struct inpcb_iterator.

OK mvs@

date 2025-01-05T12:18:48Z
author bluhm
files src/sys/netinet/tcp_input.c log diff annotate
src/sys/netinet/tcp_output.c log diff annotate
src/sys/netinet/tcp_timer.c log diff annotate
src/sys/netinet/tcp_var.h log diff annotate
message Read tcp_do_ecn only once during packet processing and mark atomic.

OK mvs@

date 2025-01-05T12:23:38Z
author bluhm
files src/sys/netinet/tcp_usrreq.c log diff annotate
message TCP integer sysctl variables are all atomic. Remove net lock.

OK mvs@

date 2025-01-05T12:36:48Z
author bluhm
files src/sys/kern/uipc_socket2.c log diff annotate
src/sys/net/af_frame.c log diff annotate
src/sys/netinet/in_proto.c log diff annotate
src/sys/netinet6/in6_proto.c log diff annotate
src/sys/sys/protosw.h log diff annotate
message Retire PR_MPSOCKET flag.

TCP socket layer is MP safe for more than a week now. That means
all protocols with pr_usrreqs have the PR_MPSOCKET flag. Remove
PR_MPSOCKET and use the logic that was used when set.

OK mvs@