Page MenuHomeFreeBSD

tcp/hpts: make stacks responsible for clearing themselves out HPTS
ClosedPublic

Authored by glebius on Nov 30 2023, 9:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 22, 11:18 PM
Unknown Object (File)
Thu, Nov 21, 12:05 AM
Unknown Object (File)
Wed, Nov 20, 2:25 PM
Unknown Object (File)
Tue, Nov 19, 5:51 AM
Unknown Object (File)
Sat, Nov 16, 3:33 AM
Unknown Object (File)
Fri, Nov 8, 3:24 PM
Unknown Object (File)
Thu, Nov 7, 3:46 AM
Unknown Object (File)
Wed, Nov 6, 2:46 PM
Subscribers

Details

Summary

There already is the tfb_tcp_timer_stop_all method that is supposed to stop
all time events associated with a given tcpcb by given stack. Some time ago
it was doing actual callout_stop(). Today bbr/rack just mark their internal
state as inactive in their tfb_tcp_timer_stop_all methods, but tcpcb stays
in HPTS wheel and potentially called in from HPTS. Change the methods to
also call tcp_hpts_remove(). Note: I'm not sure if internal flag is still
relevant once we are out of HPTS wheel.

Call the method when connection goes to into TCP_CLOSED state, instead of
calling it later when tcpcb is freed. Also call it when we switch between
stacks.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 54717
Build 51606: arc lint + arc unit