From: "Francis Y. Yan" <[email protected]>
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.