Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Jan 2011 16:15:17 +1100
From:      Lawrence Stewart <lstewart@freebsd.org>
To:        "George V. Neville-Neil" <gnn@FreeBSD.org>
Cc:        src-committers@FreeBSD.org, svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, "Bjoern A. Zeeb" <bz@FreeBSD.org>, svn-src-stable-8@FreeBSD.org, "Robert N. M. Watson" <rwatson@FreeBSD.org>
Subject:   Re: svn commit: r217018 - stable/8/sys/netinet
Message-ID:  <4D26A165.3070001@freebsd.org>
In-Reply-To: <201101051852.p05IqUjK087769@svn.freebsd.org>
References:  <201101051852.p05IqUjK087769@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi George,

On 01/06/11 05:52, George V. Neville-Neil wrote:
> Author: gnn
> Date: Wed Jan  5 18:52:30 2011
> New Revision: 217018
> URL: http://svn.freebsd.org/changeset/base/217018
> 
> Log:
>   Fix binary compatability for netstats across the -x/-T changes
>   that have been previously MFC'd.
>   
>   Reviewed by:	rwatson, bz
> 
> Modified:
>   stable/8/sys/netinet/tcp_var.h
> 
> Modified: stable/8/sys/netinet/tcp_var.h
> ==============================================================================
> --- stable/8/sys/netinet/tcp_var.h	Wed Jan  5 18:46:05 2011	(r217017)
> +++ stable/8/sys/netinet/tcp_var.h	Wed Jan  5 18:52:30 2011	(r217018)
> @@ -177,7 +177,6 @@ struct tcpcb {
>  	u_long	snd_cwnd_prev;		/* cwnd prior to retransmit */
>  	u_long	snd_ssthresh_prev;	/* ssthresh prior to retransmit */
>  	tcp_seq	snd_recover_prev;	/* snd_recover prior to retransmit */
> -	int	t_sndzerowin;		/* zero-window updates sent */
>  	u_int	t_badrxtwin;		/* window for retransmit recovery */
>  	u_char	snd_limited;		/* segments limited transmitted */
>  /* SACK related state */
> @@ -194,14 +193,15 @@ struct tcpcb {
>  	u_int32_t	rfbuf_ts;	/* recv buffer autoscaling timestamp */
>  	int	rfbuf_cnt;		/* recv buffer autoscaling byte count */
>  	struct toe_usrreqs *t_tu;	/* offload operations vector */
> -	int	t_sndrexmitpack;	/* retransmit packets sent */
> -	int	t_rcvoopack;		/* out-of-order packets received */
>  	void	*t_toe;			/* TOE pcb pointer */
>  	int	t_bytes_acked;		/* # bytes acked during current RTT */
>  
> -	int	t_ispare;		/* explicit pad for 64bit alignment */
> +	int	t_sndzerowin;	/* zero-window updates sent */
> +	uint64_t	t_sndrexmitpack;/* retransmit packets sent */
> +	uint64_t	t_rcvoopack;	/* out-of-order packets received */
> +
>  	void	*t_pspare2[6];		/* 2 CC / 4 TBD */
> -	uint64_t _pad[12];		/* 7 UTO, 5 TBD (1-2 CC/RTT?) */
> +	uint64_t _pad[10];		/* 7 UTO, 3 TBD (1-2 CC/RTT?) */
>  };

On my stable/8 machine after updating world but not kernel I see "struct
xtcpcb size mismatch" messages which indicates the ABI has been futzed with.

Looking at the above diff I think this commit does indeed change the ABI
and therefore needs to be tweaked in order to maintain our current ABI
preservation policy for stable branches (unless I'm missing something?).
If the change to the ABI is intentional, a note in UPDATING would
probably be warranted.

Cheers,
Lawrence



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D26A165.3070001>