From: "Francis Y. Yan" <francisy...@gmail.com> Date: Tue, 6 Sep 2016 18:32:40 -0700
> diff --git a/include/linux/tcp.h b/include/linux/tcp.h > index 7be9b12..f5b588e 100644 > --- a/include/linux/tcp.h > +++ b/include/linux/tcp.h > @@ -176,6 +176,7 @@ struct tcp_sock { > * were acked. > */ > struct u64_stats_sync syncp; /* protects 64bit vars (cf tcp_get_info()) > */ > + seqcount_t seqcnt; /* proctects rwnd-limited-related vars, etc. */ > > u32 snd_una; /* First byte we want an ack for */ > u32 snd_sml; /* Last byte of the most recently transmitted > small packet */ > @@ -204,6 +205,8 @@ struct tcp_sock { > > u32 window_clamp; /* Maximal window to advertise */ > u32 rcv_ssthresh; /* Current window clamp */ > + struct skb_mstamp rwnd_limited_ts; /* Last timestamp limited by rwnd */ > + u64 rwnd_limited; /* Total time (us) limited by rwnd */ > > /* Information of the most recently (s)acked skb */ > struct tcp_rack { I understand completely the usefulness of this change, but wow that is a lot of new TCP socket space taken up just to export some time values in tcp_info for debugging and statistics.