Return-Path: Received: from fieldses.org ([173.255.197.46]:36396 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753236AbbKLPRZ (ORCPT ); Thu, 12 Nov 2015 10:17:25 -0500 Date: Thu, 12 Nov 2015 10:17:25 -0500 From: "J. Bruce Fields" To: Chuck Lever Cc: Linux RDMA Mailing List , Linux NFS Mailing List Subject: Re: Fwd: [PATCH] svcrdma: Do not send XDR roundup bytes for a write chunk Message-ID: <20151112151725.GA6601@fieldses.org> References: <20151112144433.13507.34603.stgit@klimt.1015granger.net> <648A8847-9836-42EC-9D62-77C01C6E9ACF@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 In-Reply-To: <648A8847-9836-42EC-9D62-77C01C6E9ACF@oracle.com> Sender: linux-nfs-owner@vger.kernel.org List-ID: On Thu, Nov 12, 2015 at 09:47:13AM -0500, Chuck Lever wrote: > I wish git send-mail had an address book. I’m really tired > of misspelling the to/cc addresses on patches. Hah. Yeah, my hack is a text file of addresses that I cut-and-paste from. --b. > > Resending so there is one thread for all replies. Apologies > for the noise. > > > > Begin forwarded message: > > > > From: Chuck Lever > > Subject: [PATCH] svcrdma: Do not send XDR roundup bytes for a write chunk > > Date: November 12, 2015 at 9:44:33 AM EST > > To: bfields@fieldses.org > > Cc: linux-nfs@vger.kernel.org, linux-rmda@vger.kernel.org > > > > Minor optimization: when dealing with write chunk XDR roundup, do > > not post a Write WR for the zero bytes in the pad. Simply update > > the write segment in the RPC-over-RDMA header to reflect the extra > > pad bytes. > > > > The Reply chunk is also a write chunk, but the server does not use > > send_write_chunks() to send the Reply chunk. That's OK in this case: > > the server Upper Layer typically marshals the Reply chunk contents > > in a single contiguous buffer, without a separate tail for the XDR > > pad. > > > > The comments and the variable naming refer to "chunks" but what is > > really meant is "segments." The existing code sends only one > > xdr_write_chunk per RPC reply. > > > > The fix assumes this as well. When the XDR pad in the first write > > chunk is reached, the assumption is the Write list is complete and > > send_write_chunks() returns. > > > > That will remain a valid assumption until the server Upper Layer can > > support multiple bulk payload results per RPC. > > > > Signed-off-by: Chuck Lever > > --- > > net/sunrpc/xprtrdma/svc_rdma_sendto.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c > > index 1dfae83..6c48901 100644 > > --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c > > +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c > > @@ -342,6 +342,13 @@ static int send_write_chunks(struct svcxprt_rdma *xprt, > > arg_ch->rs_handle, > > arg_ch->rs_offset, > > write_len); > > + > > + /* Do not send XDR pad bytes */ > > + if (chunk_no && write_len < 4) { > > + chunk_no++; > > + break; > > + } > > + > > chunk_off = 0; > > while (write_len) { > > ret = send_write(xprt, rqstp, > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > Chuck Lever > > >