HomeFreeBSD

tcp:Host cache and rack ending up with incorrect values.

Description

tcp:Host cache and rack ending up with incorrect values.

The hostcache up to now as been updated in the discard callback
but without checking if we are all done (the race where there are
more than one calls and the counter has not yet reached zero). This
means that when the race occurs, we end up calling the hc_upate
more than once. Also alternate stacks can keep there srtt/rttvar
in different formats (example rack keeps its values in microseconds).
Since we call the hc_update *before* the stack fini() then the
values will be in the wrong format.

Rack on the other hand, needs to convert items pulled from the
hostcache into its internal format else it may end up with
very much incorrect values from the hostcache. In the process
lets commonize the update mechanism for srtt/rttvar since we
now have more than one place that needs to call it.

Reviewed by: Michael Tuexen
Sponsored by: Netflix Inc
Differential Revision: https://reviews.freebsd.org/D30172

(cherry picked from commit 9867224bab3f247ac875d89c2472aa4bc855fe3b)

Details

Provenance
rrsAuthored on May 10 2021, 3:25 PM
tuexenCommitted on Jun 9 2021, 12:00 AM
Reviewer
tuexen
Differential Revision
D30172: Initial retransmit timeout improperly set
Parents
rG4651125ac6df: This takes Warners suggested approach to making it so that
Branches
Unknown
Tags
Unknown