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

Reply via email to