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