Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Apr 2014 10:57:11 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r264037 - in projects/sendfile/sys: netinet ofed/drivers/infiniband/ulp/sdp rpc
Message-ID:  <201404021057.s32AvBV4025058@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Wed Apr  2 10:57:11 2014
New Revision: 264037
URL: http://svnweb.freebsd.org/changeset/base/264037

Log:
  Fixes for SIFTR, InfiniBand and RPC to use sbused()/sbavail()
  instead of sb_cc.

Modified:
  projects/sendfile/sys/netinet/siftr.c
  projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
  projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
  projects/sendfile/sys/rpc/clnt_vc.c
  projects/sendfile/sys/rpc/svc_vc.c

Modified: projects/sendfile/sys/netinet/siftr.c
==============================================================================
--- projects/sendfile/sys/netinet/siftr.c	Wed Apr  2 10:38:41 2014	(r264036)
+++ projects/sendfile/sys/netinet/siftr.c	Wed Apr  2 10:57:11 2014	(r264037)
@@ -781,9 +781,9 @@ siftr_siftdata(struct pkt_node *pn, stru
 	pn->flags = tp->t_flags;
 	pn->rxt_length = tp->t_rxtcur;
 	pn->snd_buf_hiwater = inp->inp_socket->so_snd.sb_hiwat;
-	pn->snd_buf_cc = inp->inp_socket->so_snd.sb_cc;
+	pn->snd_buf_cc = sbused(&inp->inp_socket->so_snd);
 	pn->rcv_buf_hiwater = inp->inp_socket->so_rcv.sb_hiwat;
-	pn->rcv_buf_cc = inp->inp_socket->so_rcv.sb_cc;
+	pn->rcv_buf_cc = sbused(&inp->inp_socket->so_rcv);
 	pn->sent_inflight_bytes = tp->snd_max - tp->snd_una;
 	pn->t_segqlen = tp->t_segqlen;
 

Modified: projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
==============================================================================
--- projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c	Wed Apr  2 10:38:41 2014	(r264036)
+++ projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c	Wed Apr  2 10:57:11 2014	(r264037)
@@ -746,7 +746,7 @@ sdp_start_disconnect(struct sdp_sock *ss
 		    ("sdp_start_disconnect: sdp_drop() returned NULL"));
 	} else {
 		soisdisconnecting(so);
-		unread = so->so_rcv.sb_cc;
+		unread = sbused(&so->so_rcv);
 		sbflush(&so->so_rcv);
 		sdp_usrclosed(ssk);
 		if (!(ssk->flags & SDP_DROPPED)) {
@@ -888,7 +888,7 @@ sdp_append(struct sdp_sock *ssk, struct 
 		m_adj(mb, SDP_HEAD_SIZE);
 		n->m_pkthdr.len += mb->m_pkthdr.len;
 		n->m_flags |= mb->m_flags & (M_PUSH | M_URG);
-		m_demote(mb, 1);
+		m_demote(mb, 1, 0);
 		sbcompress(sb, mb, sb->sb_mbtail);
 		return;
 	}
@@ -1258,7 +1258,7 @@ sdp_sorecv(struct socket *so, struct soc
 	/* We will never ever get anything unless we are connected. */
 	if (!(so->so_state & (SS_ISCONNECTED|SS_ISDISCONNECTED))) {
 		/* When disconnecting there may be still some data left. */
-		if (sb->sb_cc > 0)
+		if (sbavail(sb))
 			goto deliver;
 		if (!(so->so_state & SS_ISDISCONNECTED))
 			error = ENOTCONN;
@@ -1266,7 +1266,7 @@ sdp_sorecv(struct socket *so, struct soc
 	}
 
 	/* Socket buffer is empty and we shall not block. */
-	if (sb->sb_cc == 0 &&
+	if (sbavail(sb) == 0 &&
 	    ((so->so_state & SS_NBIO) || (flags & (MSG_DONTWAIT|MSG_NBIO)))) {
 		error = EAGAIN;
 		goto out;
@@ -1277,7 +1277,7 @@ restart:
 
 	/* Abort if socket has reported problems. */
 	if (so->so_error) {
-		if (sb->sb_cc > 0)
+		if (sbavail(sb))
 			goto deliver;
 		if (oresid > uio->uio_resid)
 			goto out;
@@ -1289,25 +1289,25 @@ restart:
 
 	/* Door is closed.  Deliver what is left, if any. */
 	if (sb->sb_state & SBS_CANTRCVMORE) {
-		if (sb->sb_cc > 0)
+		if (sbavail(sb))
 			goto deliver;
 		else
 			goto out;
 	}
 
 	/* Socket buffer got some data that we shall deliver now. */
-	if (sb->sb_cc > 0 && !(flags & MSG_WAITALL) &&
+	if (sbavail(sb) && !(flags & MSG_WAITALL) &&
 	    ((so->so_state & SS_NBIO) ||
 	     (flags & (MSG_DONTWAIT|MSG_NBIO)) ||
-	     sb->sb_cc >= sb->sb_lowat ||
-	     sb->sb_cc >= uio->uio_resid ||
-	     sb->sb_cc >= sb->sb_hiwat) ) {
+	     sbavail(sb) >= sb->sb_lowat ||
+	     sbavail(sb) >= uio->uio_resid ||
+	     sbavail(sb) >= sb->sb_hiwat) ) {
 		goto deliver;
 	}
 
 	/* On MSG_WAITALL we must wait until all data or error arrives. */
 	if ((flags & MSG_WAITALL) &&
-	    (sb->sb_cc >= uio->uio_resid || sb->sb_cc >= sb->sb_lowat))
+	    (sbavail(sb) >= uio->uio_resid || sbavail(sb) >= sb->sb_lowat))
 		goto deliver;
 
 	/*
@@ -1321,7 +1321,7 @@ restart:
 
 deliver:
 	SOCKBUF_LOCK_ASSERT(&so->so_rcv);
-	KASSERT(sb->sb_cc > 0, ("%s: sockbuf empty", __func__));
+	KASSERT(sbavail(sb), ("%s: sockbuf empty", __func__));
 	KASSERT(sb->sb_mb != NULL, ("%s: sb_mb == NULL", __func__));
 
 	/* Statistics. */
@@ -1329,7 +1329,7 @@ deliver:
 		uio->uio_td->td_ru.ru_msgrcv++;
 
 	/* Fill uio until full or current end of socket buffer is reached. */
-	len = min(uio->uio_resid, sb->sb_cc);
+	len = min(uio->uio_resid, sbavail(sb));
 	if (mp0 != NULL) {
 		/* Dequeue as many mbufs as possible. */
 		if (!(flags & MSG_PEEK) && len >= sb->sb_mb->m_len) {
@@ -1509,7 +1509,7 @@ sdp_urg(struct sdp_sock *ssk, struct mbu
 	if (so == NULL)
 		return;
 
-	so->so_oobmark = so->so_rcv.sb_cc + mb->m_pkthdr.len - 1;
+	so->so_oobmark = sbused(&so->so_rcv) + mb->m_pkthdr.len - 1;
 	sohasoutofband(so);
 	ssk->oobflags &= ~(SDP_HAVEOOB | SDP_HADOOB);
 	if (!(so->so_options & SO_OOBINLINE)) {

Modified: projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
==============================================================================
--- projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c	Wed Apr  2 10:38:41 2014	(r264036)
+++ projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c	Wed Apr  2 10:57:11 2014	(r264037)
@@ -183,7 +183,7 @@ sdp_post_recvs_needed(struct sdp_sock *s
 	 * Compute bytes in the receive queue and socket buffer.
 	 */
 	bytes_in_process = (posted - SDP_MIN_TX_CREDITS) * buffer_size;
-	bytes_in_process += ssk->socket->so_rcv.sb_cc;
+	bytes_in_process += sbused(&ssk->socket->so_rcv);
 
 	return bytes_in_process < max_bytes;
 }

Modified: projects/sendfile/sys/rpc/clnt_vc.c
==============================================================================
--- projects/sendfile/sys/rpc/clnt_vc.c	Wed Apr  2 10:38:41 2014	(r264036)
+++ projects/sendfile/sys/rpc/clnt_vc.c	Wed Apr  2 10:57:11 2014	(r264037)
@@ -862,7 +862,7 @@ clnt_vc_soupcall(struct socket *so, void
 			 * error condition
 			 */
 			do_read = FALSE;
-			if (so->so_rcv.sb_cc >= sizeof(uint32_t)
+			if (sbavail(&so->so_rcv) >= sizeof(uint32_t)
 			    || (so->so_rcv.sb_state & SBS_CANTRCVMORE)
 			    || so->so_error)
 				do_read = TRUE;
@@ -915,7 +915,7 @@ clnt_vc_soupcall(struct socket *so, void
 			 * buffered.
 			 */
 			do_read = FALSE;
-			if (so->so_rcv.sb_cc >= ct->ct_record_resid
+			if (sbavail(&so->so_rcv) >= ct->ct_record_resid
 			    || (so->so_rcv.sb_state & SBS_CANTRCVMORE)
 			    || so->so_error)
 				do_read = TRUE;

Modified: projects/sendfile/sys/rpc/svc_vc.c
==============================================================================
--- projects/sendfile/sys/rpc/svc_vc.c	Wed Apr  2 10:38:41 2014	(r264036)
+++ projects/sendfile/sys/rpc/svc_vc.c	Wed Apr  2 10:57:11 2014	(r264037)
@@ -546,7 +546,7 @@ svc_vc_ack(SVCXPRT *xprt, uint32_t *ack)
 {
 
 	*ack = atomic_load_acq_32(&xprt->xp_snt_cnt);
-	*ack -= xprt->xp_socket->so_snd.sb_cc;
+	*ack -= sbused(&xprt->xp_socket->so_snd);
 	return (TRUE);
 }
 



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