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>