OpenBSD cvs log

created 2023-09-04T15:31:45Z
begin 2023-08-28T00:00:00Z
end 2023-08-29T00:00:00Z
path src/sys
commits 2

date 2023-08-28T14:50:01Z
author bluhm
files src/sys/dev/dt/dt_prov_static.c log diff annotate
src/sys/netinet/tcp_input.c log diff annotate
message Introduce reference counting for TCP syn cache entries.

The syn_cache_reaper() is a hack to serialize timeouts. Unfortunately
it has a race and panics sometimes with pool_do_get: syncache free
list modified. Add a reference counter for timeout and list of syn
cache entries. Currently list refcout is not strictly necessary
due to exclusive netlock, but will be needed when we continue
unlocking.

Checking timeout_initialized() is not MP friendly, better do proper
initialization during object allocation. Refcount in btrace helps
to find leaks.

bug reported and fix tested by Peter J. Philipp
OK claudio@

date 2023-08-28T14:50:02Z
author bluhm
files src/sys/netinet/tcp_var.h log diff annotate
src/sys/sys/refcnt.h log diff annotate
message Introduce reference counting for TCP syn cache entries.

The syn_cache_reaper() is a hack to serialize timeouts. Unfortunately
it has a race and panics sometimes with pool_do_get: syncache free
list modified. Add a reference counter for timeout and list of syn
cache entries. Currently list refcout is not strictly necessary
due to exclusive netlock, but will be needed when we continue
unlocking.

Checking timeout_initialized() is not MP friendly, better do proper
initialization during object allocation. Refcount in btrace helps
to find leaks.

bug reported and fix tested by Peter J. Philipp
OK claudio@