From owner-svn-src-all@FreeBSD.ORG Sun Jul 12 09:14:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E03DE106566B; Sun, 12 Jul 2009 09:14:28 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE1C18FC1B; Sun, 12 Jul 2009 09:14:28 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n6C9ESxk077616; Sun, 12 Jul 2009 09:14:28 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n6C9ESBM077612; Sun, 12 Jul 2009 09:14:28 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200907120914.n6C9ESBM077612@svn.freebsd.org> From: Lawrence Stewart Date: Sun, 12 Jul 2009 09:14:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195634 - in head: . sys/netinet sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2009 09:14:29 -0000 Author: lstewart Date: Sun Jul 12 09:14:28 2009 New Revision: 195634 URL: http://svn.freebsd.org/changeset/base/195634 Log: Pad the following TCP related structs to allow MFCs of upcoming features/fixes back to the 8 branch: tcp_var.h - struct sackhint - struct tcpcb - struct tcpstat The patch breaks the ABI. Bump __FreeBSD_version to 800102 accordingly. User space tools that rely on the size of any of these structs (e.g. sockstat) need to be recompiled. Reviewed by: rpaulo, sam, andre, rwatson Approved by: re & mentor (gnn) Modified: head/UPDATING head/sys/netinet/tcp_var.h head/sys/sys/param.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Sun Jul 12 04:48:47 2009 (r195633) +++ head/UPDATING Sun Jul 12 09:14:28 2009 (r195634) @@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090712: + Padding has been added to struct tcpcb, sackhint and tcpstat in + to facilitate future MFCs and bug fixes whilst + maintainig the ABI. However, this change breaks the ABI, so bump + __FreeBSD_version to 800102. User space tools that rely on the size of + any of these structs (e.g. sockstat) need to be recompiled. + 20090630: The NFS_LEGACYRPC option has been removed along with the old kernel RPC implementation that this option selected. Kernel Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Sun Jul 12 04:48:47 2009 (r195633) +++ head/sys/netinet/tcp_var.h Sun Jul 12 09:14:28 2009 (r195634) @@ -72,6 +72,9 @@ struct sackhole { struct sackhint { struct sackhole *nexthole; int sack_bytes_rexmit; + + int ispare; /* explicit pad for 64bit alignment */ + uint64_t _pad[2]; /* 1 sacked_bytes, 1 TBD */ }; struct tcptemp { @@ -99,6 +102,7 @@ do { \ */ struct tcpcb { struct tsegqe_head t_segq; /* segment reassembly queue */ + void *t_pspare[2]; /* new reassembly queue */ int t_segqlen; /* segment reassembly queue length */ int t_dupacks; /* consecutive dup acks recd */ @@ -190,10 +194,13 @@ struct tcpcb { int t_rttlow; /* smallest observerved RTT */ u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */ int rfbuf_cnt; /* recv buffer autoscaling byte count */ - void *t_pspare[3]; /* toe usrreqs / toepcb * / congestion algo / 1 general use */ struct toe_usrreqs *t_tu; /* offload operations vector */ void *t_toe; /* TOE pcb pointer */ int t_bytes_acked; /* # bytes acked during current RTT */ + + int t_ispare; /* explicit pad for 64bit alignment */ + void *t_pspare2[6]; /* 2 CC / 4 TBD */ + uint64_t _pad[12]; /* 7 UTO, 5 TBD (1-2 CC/RTT?) */ }; /* @@ -460,6 +467,8 @@ struct tcpstat { u_long tcps_ecn_ect1; /* ECN Capable Transport */ u_long tcps_ecn_shs; /* ECN successful handshakes */ u_long tcps_ecn_rcwnd; /* # times ECN reduced the cwnd */ + + u_long _pad[12]; /* 6 UTO, 6 TBD */ }; #ifdef _KERNEL Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Sun Jul 12 04:48:47 2009 (r195633) +++ head/sys/sys/param.h Sun Jul 12 09:14:28 2009 (r195634) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 800101 /* Master, propagated to newvers */ +#define __FreeBSD_version 800102 /* Master, propagated to newvers */ #ifndef LOCORE #include