• Randall Stewart's avatar
    tcp:Host cache and rack ending up with incorrect values. · 9867224b
    Randall Stewart authored
    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