From: Tom Tucker <tom@opengridcomputing.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 1/3] svcrdma: Remove redunant call to xpo_release_rqst method.
Date: Wed, 07 May 2008 10:08:06 -0500 [thread overview]
Message-ID: <1210172886.27493.30.camel@trinity.ogc.int> (raw)
In-Reply-To: <20080506215940.GQ13484@fieldses.org>
On Tue, 2008-05-06 at 17:59 -0400, J. Bruce Fields wrote:
> On Fri, May 02, 2008 at 11:18:04AM -0500, Tom Tucker wrote:
> > The xpo_release_rqst method is called from svc_xprt_release and therefore
> > this direct call of the provider method is redundant. There is no bug
> > here since the provider protects against multiple calls.
> >
> > Originally, this code was here because the xpo_release_rqst function was
> > being used by the RDMA transport to return credits to the client, i.e.
> > posting a receive buffer. This had to be done before the send in order to
> > avoid a race wherein the client responds immediately with a new request
> > but the buffer has not yet been posted. This is a poor design point and
> > the recv buffer posting has been modified in the rdma transport.
>
> The comment there refers to the socket code, not the rdma code, and
Yes, you are correct.
> there was a svc_release_skb() there before the rdma code came along.
> I'd like to understand why.
I believe it's because the socket code has buffer quotas and the skb
you're holding consumes credits in the recv sock buf. So it's
conceivable that you could send a message, another client message
arrives prior to releasing the skb your holding, and this new message
gets dropped unnecessarily. I don't believe it affects the sending at
all because the message you're holding came from sock_recv_datagram and
only consumes recv side credits.
Since this patch is only for "clean up" purposes, I'm inclined to just
ditch this patch and let us noodle on it a little more. Agreed?
>
> --b.
>
> >
> > Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
> >
> > ---
> > net/sunrpc/svc_xprt.c | 3 ---
> > 1 files changed, 0 insertions(+), 3 deletions(-)
> >
> > diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
> > index d8e8d79..74e52d4 100644
> > --- a/net/sunrpc/svc_xprt.c
> > +++ b/net/sunrpc/svc_xprt.c
> > @@ -751,9 +751,6 @@ int svc_send(struct svc_rqst *rqstp)
> > if (!xprt)
> > return -EFAULT;
> >
> > - /* release the receive skb before sending the reply */
> > - rqstp->rq_xprt->xpt_ops->xpo_release_rqst(rqstp);
> > -
> > /* calculate over-all length */
> > xb = &rqstp->rq_res;
> > xb->len = xb->head[0].iov_len +
> --
> 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
next prev parent reply other threads:[~2008-05-07 15:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <12097450861136-git-send-email-tom@opengridcomputing.com>
[not found] ` <12097450861293-git-send-email-tom@opengridcomputing.com>
2008-05-06 21:59 ` [PATCH 1/3] svcrdma: Remove redunant call to xpo_release_rqst method J. Bruce Fields
2008-05-07 15:08 ` Tom Tucker [this message]
[not found] ` <1210172886.27493.30.camel-SMNkleLxa3ZimH42XvhXlA@public.gmane.org>
2008-05-07 16:26 ` J. Bruce Fields
[not found] ` <12097450863435-git-send-email-tom@opengridcomputing.com>
2008-05-06 22:04 ` [PATCH 2/3] svcrdma: Remove extra check for XPT_DEAD bit in svc_xprt_enqueue J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1210172886.27493.30.camel@trinity.ogc.int \
--to=tom@opengridcomputing.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.