Chromium Code Reviews
DescriptionAdd UMA for the kernel's TCP RTT estimate.
This change adds UMA to log the kernel's RTT estimate at the time a connection
is closed.
We already log UMA for TCP connection times (see Net.TCP_Connection_Latency).
This is useful, but may not capture true network RTT due to SYN retransmits.
Additionally, the linux kernel continues to update its RTT estimate over the
life of the TCP connection using an exponentially weighted moving average, so
this estimate should be affected less by outliers than a single RTT sample
from the TCP SYN.
My current open questions (to net maintainers):
* Is TCPClientSocket the right place to hook in for the purpose of recording
round trip times?
* Which Chrome connections do/do not use TCPClientSocket? Do SSL sockets use
TCPClientSocket internally? What about proxy connections? Any other
interesting/important cases I should be aware of here?
* If TCPClientSocket is the right place to hook in, am I catching all cases
where a TCPClientSocket can be closed? I hooked into the destructor and
Disconnect() - are there other places where the socket can get closed
that I should also be hooking?
Committed: https://crrev.com/8b62f477c62822a4419298f690ae06907544f516
Cr-Commit-Position: refs/heads/master@{#337827}
Patch Set 1 #Patch Set 2 : Also emit histogram in destructor. #Patch Set 3 : Address comments. #Patch Set 4 : Make method name more descriptive. #
Total comments: 28
Patch Set 5 : Address comments. #Patch Set 6 : Address comments. #Patch Set 7 : Add comment for tcpi_rtt==0 test. #
Total comments: 10
Patch Set 8 : Address comments. #
Total comments: 2
Patch Set 9 : Add missing TODO #Patch Set 10 : Add WARN_UNUSED_RESULT. #
Messages
Total messages: 21 (4 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||