From owner-svn-src-projects@FreeBSD.ORG Wed Apr 2 10:57:12 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7E953D46; Wed, 2 Apr 2014 10:57:12 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A61ABF6; Wed, 2 Apr 2014 10:57:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s32AvCV4025064; Wed, 2 Apr 2014 10:57:12 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s32AvBV4025058; Wed, 2 Apr 2014 10:57:11 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201404021057.s32AvBV4025058@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 2 Apr 2014 10:57:11 +0000 (UTC) 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 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Apr 2014 10:57:12 -0000 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); }