PERFORCE change 116292 for review
John Baldwin
jhb at FreeBSD.org
Wed Mar 21 20:56:37 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=116292
Change 116292 by jhb at jhb_mutex on 2007/03/21 20:55:35
IFC @116291
Affected files ...
.. //depot/projects/smpng/sys/kern/kern_condvar.c#45 integrate
.. //depot/projects/smpng/sys/kern/kern_lock.c#60 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#126 integrate
.. //depot/projects/smpng/sys/netinet/tcp_hostcache.c#10 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#100 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#46 integrate
.. //depot/projects/smpng/sys/netinet/tcp_sack.c#19 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#89 integrate
.. //depot/projects/smpng/sys/netinet/tcp_timer.c#34 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#59 integrate
Differences ...
==== //depot/projects/smpng/sys/kern/kern_condvar.c#45 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_condvar.c,v 1.57 2006/12/16 06:54:08 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_condvar.c,v 1.58 2007/03/21 20:46:26 jhb Exp $");
#include "opt_ktrace.h"
@@ -96,7 +96,16 @@
cv_wait(struct cv *cvp, struct mtx *mp)
{
WITNESS_SAVE_DECL(mp);
+ struct thread *td;
+ td = curthread;
+#ifdef KTRACE
+ if (KTRPOINT(td, KTR_CSW))
+ ktrcsw(1, 0);
+#endif
+ CV_ASSERT(cvp, mp, td);
+ WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, &mp->mtx_object,
+ "Waiting on \"%s\"", cvp->cv_description);
WITNESS_SAVE(&mp->mtx_object, mp);
if (cold || panicstr) {
@@ -109,7 +118,21 @@
return;
}
- cv_wait_unlock(cvp, mp);
+ sleepq_lock(cvp);
+
+ cvp->cv_waiters++;
+ DROP_GIANT();
+ mtx_unlock(mp);
+
+ sleepq_add(cvp, &mp->mtx_object, cvp->cv_description, SLEEPQ_CONDVAR,
+ 0);
+ sleepq_wait(cvp);
+
+#ifdef KTRACE
+ if (KTRPOINT(td, KTR_CSW))
+ ktrcsw(0, 0);
+#endif
+ PICKUP_GIANT();
mtx_lock(mp);
WITNESS_RESTORE(&mp->mtx_object, mp);
}
@@ -153,6 +176,10 @@
0);
sleepq_wait(cvp);
+#ifdef KTRACE
+ if (KTRPOINT(td, KTR_CSW))
+ ktrcsw(0, 0);
+#endif
PICKUP_GIANT();
}
==== //depot/projects/smpng/sys/kern/kern_lock.c#60 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.106 2007/03/09 16:27:11 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.107 2007/03/21 19:28:20 jhb Exp $");
#include "opt_ddb.h"
#include "opt_global.h"
==== //depot/projects/smpng/sys/kern/vfs_syscalls.c#126 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.433 2007/03/14 08:45:55 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.434 2007/03/21 19:32:08 jhb Exp $");
#include "opt_compat.h"
#include "opt_mac.h"
==== //depot/projects/smpng/sys/netinet/tcp_hostcache.c#10 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/netinet/tcp_hostcache.c,v 1.11 2006/12/12 12:17:56 bz Exp $
+ * $FreeBSD: src/sys/netinet/tcp_hostcache.c,v 1.12 2007/03/21 19:34:12 andre Exp $
*/
/*
@@ -156,26 +156,26 @@
SYSCTL_NODE(_net_inet_tcp, OID_AUTO, hostcache, CTLFLAG_RW, 0, "TCP Host cache");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, cachelimit, CTLFLAG_RDTUN,
- &tcp_hostcache.cache_limit, 0, "Overall entry limit for hostcache");
+ &tcp_hostcache.cache_limit, 0, "Overall entry limit for hostcache");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, hashsize, CTLFLAG_RDTUN,
- &tcp_hostcache.hashsize, 0, "Size of TCP hostcache hashtable");
+ &tcp_hostcache.hashsize, 0, "Size of TCP hostcache hashtable");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, bucketlimit, CTLFLAG_RDTUN,
- &tcp_hostcache.bucket_limit, 0, "Per-bucket hash limit for hostcache");
+ &tcp_hostcache.bucket_limit, 0, "Per-bucket hash limit for hostcache");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, count, CTLFLAG_RD,
- &tcp_hostcache.cache_count, 0, "Current number of entries in hostcache");
+ &tcp_hostcache.cache_count, 0, "Current number of entries in hostcache");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, expire, CTLFLAG_RW,
- &tcp_hostcache.expire, 0, "Expire time of TCP hostcache entries");
+ &tcp_hostcache.expire, 0, "Expire time of TCP hostcache entries");
SYSCTL_INT(_net_inet_tcp_hostcache, OID_AUTO, purge, CTLFLAG_RW,
- &tcp_hostcache.purgeall, 0, "Expire all entires on next purge run");
+ &tcp_hostcache.purgeall, 0, "Expire all entires on next purge run");
SYSCTL_PROC(_net_inet_tcp_hostcache, OID_AUTO, list,
- CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_SKIP, 0, 0,
- sysctl_tcp_hc_list, "A", "List of all hostcache entries");
+ CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_SKIP, 0, 0,
+ sysctl_tcp_hc_list, "A", "List of all hostcache entries");
static MALLOC_DEFINE(M_HOSTCACHE, "hostcache", "TCP hostcache");
==== //depot/projects/smpng/sys/netinet/tcp_input.c#100 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_input.c 8.12 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.324 2007/03/21 18:56:03 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.325 2007/03/21 19:37:55 andre Exp $
*/
#include "opt_ipfw.h" /* for ipfw_fwd */
@@ -236,11 +236,7 @@
}
static int
-tcp_reass(tp, th, tlenp, m)
- register struct tcpcb *tp;
- register struct tcphdr *th;
- int *tlenp;
- struct mbuf *m;
+tcp_reass(struct tcpcb *tp, struct tcphdr *th, int *tlenp, struct mbuf *m)
{
struct tseg_qent *q;
struct tseg_qent *p = NULL;
@@ -310,7 +306,7 @@
* segment. If it provides all of our data, drop us.
*/
if (p != NULL) {
- register int i;
+ int i;
/* conversion to int (in i) handles seq wraparound */
i = p->tqe_th->th_seq + p->tqe_len - th->th_seq;
if (i > 0) {
@@ -342,7 +338,7 @@
* if they are completely covered, dequeue them.
*/
while (q) {
- register int i = (th->th_seq + *tlenp) - q->tqe_th->th_seq;
+ int i = (th->th_seq + *tlenp) - q->tqe_th->th_seq;
if (i <= 0)
break;
if (i < q->tqe_len) {
@@ -408,11 +404,9 @@
*/
#ifdef INET6
int
-tcp6_input(mp, offp, proto)
- struct mbuf **mp;
- int *offp, proto;
+tcp6_input(struct mbuf **mp, int *offp, int proto)
{
- register struct mbuf *m = *mp;
+ struct mbuf *m = *mp;
struct in6_ifaddr *ia6;
IP6_EXTHDR_CHECK(m, *offp, sizeof(struct tcphdr), IPPROTO_DONE);
@@ -437,20 +431,18 @@
#endif
void
-tcp_input(m, off0)
- register struct mbuf *m;
- int off0;
+tcp_input(struct mbuf *m, int off0)
{
- register struct tcphdr *th;
- register struct ip *ip = NULL;
- register struct ipovly *ipov;
- register struct inpcb *inp = NULL;
+ struct tcphdr *th;
+ struct ip *ip = NULL;
+ struct ipovly *ipov;
+ struct inpcb *inp = NULL;
u_char *optp = NULL;
int optlen = 0;
int len, tlen, off;
int drop_hdrlen;
- register struct tcpcb *tp = 0;
- register int thflags;
+ struct tcpcb *tp = 0;
+ int thflags;
struct socket *so = 0;
int todrop, acked, ourfinisacked, needoutput = 0;
u_long tiwin;
@@ -2137,8 +2129,8 @@
*/
if ((!tcp_do_newreno && !tp->sack_enable) ||
!IN_FASTRECOVERY(tp)) {
- register u_int cw = tp->snd_cwnd;
- register u_int incr = tp->t_maxseg;
+ u_int cw = tp->snd_cwnd;
+ u_int incr = tp->t_maxseg;
if (cw > tp->snd_ssthresh)
incr = incr * incr / cw;
tp->snd_cwnd = min(cw+incr, TCP_MAXWIN<<tp->snd_scale);
@@ -2597,11 +2589,7 @@
* Parse TCP options and place in tcpopt.
*/
static void
-tcp_dooptions(to, cp, cnt, flags)
- struct tcpopt *to;
- u_char *cp;
- int cnt;
- int flags;
+tcp_dooptions(struct tcpopt *to, u_char *cp, int cnt, int flags)
{
int opt, optlen;
@@ -2691,11 +2679,8 @@
* sequencing purposes.
*/
static void
-tcp_pulloutofband(so, th, m, off)
- struct socket *so;
- struct tcphdr *th;
- register struct mbuf *m;
- int off; /* delayed to be droped hdrlen */
+tcp_pulloutofband(struct socket *so, struct tcphdr *th, struct mbuf *m,
+ int off)
{
int cnt = off + th->th_urp - 1;
@@ -2725,11 +2710,9 @@
* and update averages and current timeout.
*/
static void
-tcp_xmit_timer(tp, rtt)
- register struct tcpcb *tp;
- int rtt;
+tcp_xmit_timer(struct tcpcb *tp, int rtt)
{
- register int delta;
+ int delta;
INP_LOCK_ASSERT(tp->t_inpcb);
@@ -2833,9 +2816,7 @@
* segment. Outgoing SYN/ACK MSS settings are handled in tcp_mssopt().
*/
void
-tcp_mss(tp, offer)
- struct tcpcb *tp;
- int offer;
+tcp_mss(struct tcpcb *tp, int offer)
{
int rtt, mss;
u_long bufsize;
@@ -3079,8 +3060,7 @@
* Determine the MSS option to send on an outgoing SYN.
*/
int
-tcp_mssopt(inc)
- struct in_conninfo *inc;
+tcp_mssopt(struct in_conninfo *inc)
{
int mss = 0;
u_long maxmtu = 0;
@@ -3122,9 +3102,7 @@
* be started again.
*/
static void
-tcp_newreno_partial_ack(tp, th)
- struct tcpcb *tp;
- struct tcphdr *th;
+tcp_newreno_partial_ack(struct tcpcb *tp, struct tcphdr *th)
{
tcp_seq onxt = tp->snd_nxt;
u_long ocwnd = tp->snd_cwnd;
@@ -3158,12 +3136,8 @@
* looking for a pcb in the listen state. Returns 0 otherwise.
*/
static int
-tcp_timewait(inp, to, th, m, tlen)
- struct inpcb *inp;
- struct tcpopt *to;
- struct tcphdr *th;
- struct mbuf *m;
- int tlen;
+tcp_timewait(struct inpcb *inp, struct tcpopt *to, struct tcphdr *th,
+ struct mbuf *m, int tlen)
{
struct tcptw *tw;
int thflags;
==== //depot/projects/smpng/sys/netinet/tcp_output.c#46 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_output.c 8.4 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.129 2007/03/21 19:04:07 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.130 2007/03/21 19:37:55 andre Exp $
*/
#include "opt_inet.h"
@@ -1226,8 +1226,7 @@
}
void
-tcp_setpersist(tp)
- register struct tcpcb *tp;
+tcp_setpersist(struct tcpcb *tp)
{
int t = ((tp->t_srtt >> 2) + tp->t_rttvar) >> 1;
int tt;
==== //depot/projects/smpng/sys/netinet/tcp_sack.c#19 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_sack.c 8.12 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_sack.c,v 1.33 2007/03/21 18:25:28 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_sack.c,v 1.34 2007/03/21 19:37:55 andre Exp $
*/
/*-
@@ -319,7 +319,7 @@
*/
static struct sackhole *
tcp_sackhole_insert(struct tcpcb *tp, tcp_seq start, tcp_seq end,
- struct sackhole *after)
+ struct sackhole *after)
{
struct sackhole *hole;
@@ -582,9 +582,7 @@
* of sack recovery.
*/
void
-tcp_sack_partialack(tp, th)
- struct tcpcb *tp;
- struct tcphdr *th;
+tcp_sack_partialack(struct tcpcb *tp, struct tcphdr *th)
{
int num_segs = 1;
==== //depot/projects/smpng/sys/netinet/tcp_subr.c#89 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_subr.c 8.2 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.271 2007/03/21 18:05:54 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.272 2007/03/21 19:37:55 andre Exp $
*/
#include "opt_compat.h"
@@ -466,10 +466,10 @@
* NOTE: If m != NULL, then ti must point to *inside* the mbuf.
*/
void
-tcp_respond(struct tcpcb *tp, void *ipgen, register struct tcphdr *th,
- register struct mbuf *m, tcp_seq ack, tcp_seq seq, int flags)
+tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th,
+ struct mbuf *m, tcp_seq ack, tcp_seq seq, int flags)
{
- register int tlen;
+ int tlen;
int win = 0;
struct ip *ip;
struct tcphdr *nth;
@@ -1058,7 +1058,7 @@
}
SYSCTL_PROC(_net_inet_tcp, TCPCTL_PCBLIST, pcblist, CTLFLAG_RD, 0, 0,
- tcp_pcblist, "S,xtcpcb", "List of active TCP connections");
+ tcp_pcblist, "S,xtcpcb", "List of active TCP connections");
static int
tcp_getcred(SYSCTL_HANDLER_ARGS)
==== //depot/projects/smpng/sys/netinet/tcp_timer.c#34 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_timer.c 8.2 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_timer.c,v 1.87 2007/03/19 18:57:10 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_timer.c,v 1.88 2007/03/21 19:37:55 andre Exp $
*/
#include "opt_inet6.h"
@@ -146,8 +146,7 @@
*/
void
-tcp_timer_delack(xtp)
- void *xtp;
+tcp_timer_delack(void *xtp)
{
struct tcpcb *tp = xtp;
struct inpcb *inp;
@@ -182,8 +181,7 @@
}
void
-tcp_timer_2msl(xtp)
- void *xtp;
+tcp_timer_2msl(void *xtp)
{
struct tcpcb *tp = xtp;
struct inpcb *inp;
@@ -306,8 +304,7 @@
}
void
-tcp_timer_keep(xtp)
- void *xtp;
+tcp_timer_keep(void *xtp)
{
struct tcpcb *tp = xtp;
struct tcptemp *t_template;
@@ -398,8 +395,7 @@
}
void
-tcp_timer_persist(xtp)
- void *xtp;
+tcp_timer_persist(void *xtp)
{
struct tcpcb *tp = xtp;
struct inpcb *inp;
@@ -465,8 +461,7 @@
}
void
-tcp_timer_rexmt(xtp)
- void *xtp;
+tcp_timer_rexmt(void * xtp)
{
struct tcpcb *tp = xtp;
int rexmt;
==== //depot/projects/smpng/sys/netinet/tcp_usrreq.c#59 (text+ko) ====
@@ -29,7 +29,7 @@
* SUCH DAMAGE.
*
* From: @(#)tcp_usrreq.c 8.2 (Berkeley) 1/3/94
- * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.148 2007/03/21 18:05:54 andre Exp $
+ * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.149 2007/03/21 19:37:55 andre Exp $
*/
#include "opt_ddb.h"
@@ -777,7 +777,7 @@
*/
static int
tcp_usr_send(struct socket *so, int flags, struct mbuf *m,
- struct sockaddr *nam, struct mbuf *control, struct thread *td)
+ struct sockaddr *nam, struct mbuf *control, struct thread *td)
{
int error = 0;
struct inpcb *inp;
@@ -1100,10 +1100,7 @@
* Initialize connection parameters and enter SYN-SENT state.
*/
static int
-tcp_connect(tp, nam, td)
- register struct tcpcb *tp;
- struct sockaddr *nam;
- struct thread *td;
+tcp_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td)
{
struct inpcb *inp = tp->t_inpcb, *oinp;
struct socket *so = inp->inp_socket;
@@ -1159,10 +1156,7 @@
#ifdef INET6
static int
-tcp6_connect(tp, nam, td)
- register struct tcpcb *tp;
- struct sockaddr *nam;
- struct thread *td;
+tcp6_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td)
{
struct inpcb *inp = tp->t_inpcb, *oinp;
struct socket *so = inp->inp_socket;
@@ -1232,9 +1226,7 @@
* from Linux.
*/
static void
-tcp_fill_info(tp, ti)
- struct tcpcb *tp;
- struct tcp_info *ti;
+tcp_fill_info(struct tcpcb *tp, struct tcp_info *ti)
{
INP_LOCK_ASSERT(tp->t_inpcb);
@@ -1276,9 +1268,7 @@
* the inpcb lock.
*/
int
-tcp_ctloutput(so, sopt)
- struct socket *so;
- struct sockopt *sopt;
+tcp_ctloutput(struct socket *so, struct sockopt *sopt)
{
int error, opt, optval;
struct inpcb *inp;
@@ -1440,10 +1430,9 @@
* bufer space, and entering LISTEN state if to accept connections.
*/
static int
-tcp_attach(so)
- struct socket *so;
+tcp_attach(struct socket *so)
{
- register struct tcpcb *tp;
+ struct tcpcb *tp;
struct inpcb *inp;
int error;
#ifdef INET6
@@ -1503,8 +1492,7 @@
* send segment to peer (with FIN).
*/
static void
-tcp_disconnect(tp)
- register struct tcpcb *tp;
+tcp_disconnect(struct tcpcb *tp)
{
struct inpcb *inp = tp->t_inpcb;
struct socket *so = inp->inp_socket;
@@ -1544,8 +1532,7 @@
* We can let the user exit from the close as soon as the FIN is acked.
*/
static void
-tcp_usrclosed(tp)
- register struct tcpcb *tp;
+tcp_usrclosed(struct tcpcb *tp)
{
INP_INFO_WLOCK_ASSERT(&tcbinfo);
More information about the p4-projects
mailing list