On Thu, 2015-05-21 at 23:25 -0400, David Miller wrote: > From: Eric Dumazet <eric.duma...@gmail.com> > Date: Wed, 20 May 2015 16:35:41 -0700 > > > From: Marcelo Ricardo Leitner <mleit...@redhat.com> > > > > This patch tracks the total number of inbound and outbound segments on a > > TCP socket. One may use this number to have an idea on connection > > quality when compared against the retransmissions. > > > > RFC4898 named these : tcpEStatsPerfSegsIn and tcpEStatsPerfSegsOut > > > > These are a 32bit field each and can be fetched both from TCP_INFO > > getsockopt() if one has a handle on a TCP socket, or from inet_diag > > netlink facility (iproute2/ss patch will follow) > > > > Note that tp->segs_out was placed near tp->snd_nxt for good data > > locality and minimal performance impact, while tp->segs_in was placed > > near tp->bytes_received for the same reason. > > > > Join work with Eric Dumazet. > > > > Note that received SYN are accounted on the listener, but sent SYNACK > > are not accounted. > > > > Signed-off-by: Marcelo Ricardo Leitner <mleit...@redhat.com> > > Signed-off-by: Eric Dumazet <eduma...@google.com> > > Applied to net-next, thanks.
Thanks David. I'll send a fix for the stuff I added earlier, as the spin_lock_bh() in get_tcp_info() can deadlock since the caller inet_diag_dump_icsk() might hold the &hashinfo->ehash_locks[i] I need to instead use u64_stats_fetch_begin_irq()/u64_stats_fetch_retry_irq() (and as a bonus optimize 64bit arches) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html