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@ |