From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Sagi Grimberg <sagi@grimberg.me>,
linux-rdma <linux-rdma@vger.kernel.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH RFC 0/5] xprtrdma Send completion batching
Date: Wed, 6 Sep 2017 15:11:03 -0600 [thread overview]
Message-ID: <20170906211103.GA26642@obsidianresearch.com> (raw)
In-Reply-To: <C5144079-7F9C-4783-AF4D-A73411420D5E@oracle.com>
On Wed, Sep 06, 2017 at 05:00:29PM -0400, Chuck Lever wrote:
> What I implemented was a scheme to invalidate the memory of a
> (POSIX) signaled RPC before it completes, in case the RPC Reply
> hadn't yet arrived.
>
> Currently, the only time the QP might be killed is if the server
> attempts to RDMA Write an RPC Reply into one of these invalidated
> memory regions. That case can't be avoided with the current RPC-
> over-RDMA protocol.
Okay..
> And again, we want to preserve the connection if it is healthy.
Well, if SENDs are not completing then it is not healthly. It is
analogous to what TCP Keep Alive does.
> > How does sockets based NFS handle this? Doesn't it zero copy from these
> > same buffers into SKBs? How does it cancel the SKBs before the NIC
> > transmits them?
> >
> > Seems like exactly the same kind of problem to me..
>
> TCP has keep-alive, where the sockets consumer is notified as soon
> as the network layer determines the remote is unresponsive. The
> connection is closed from underneath the consumer.
keep-alive is something different, it pings the remote periodicaly and
detects dead connections even when there is no traffic.
RDMA detects dead connections via retries and timeouts, but only if
there is traffic.
My questions was about how the same situation is handled in TCP. If it
does DMA directly from the source buffers by chaining them into SKBs
then it has exactly the same problem, it cannot release the buffers
until SKB is released from the TCP stack after NIC xmit. Like in RDMA,
this only happens once TCP has got the ack back.
Perhaps the answer is that TCP does not zero copy these buffers, or
TCP doesn't care about transmitting random memory, but it seems a
question worth asking.
Jason
next prev parent reply other threads:[~2017-09-06 21:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-05 17:00 [PATCH RFC 0/5] xprtrdma Send completion batching Chuck Lever
2017-09-05 17:00 ` [PATCH RFC 1/5] xprtrdma: Clean up SGE accounting in rpcrdma_prepare_msg_sges() Chuck Lever
2017-09-05 17:00 ` [PATCH RFC 2/5] xprtrdma: Change return value of rpcrdma_prepare_send_sges() Chuck Lever
2017-09-05 17:00 ` [PATCH RFC 3/5] xprtrdma: Add data structure to manage RDMA Send arguments Chuck Lever
2017-09-05 17:00 ` [PATCH RFC 4/5] xprtrdma: Manage RDMA Send arguments via lock-free circular queue Chuck Lever
2017-09-05 21:50 ` Chuck Lever
2017-09-05 17:00 ` [PATCH RFC 5/5] xprtrdma: Remove atomic send completion counting Chuck Lever
2017-09-05 20:06 ` [PATCH RFC 0/5] xprtrdma Send completion batching Jason Gunthorpe
2017-09-05 21:22 ` Chuck Lever
2017-09-05 22:03 ` Jason Gunthorpe
2017-09-06 14:17 ` Chuck Lever
2017-09-06 1:28 ` Tom Talpey
2017-09-06 11:54 ` Sagi Grimberg
2017-09-06 14:15 ` Chuck Lever
2017-09-06 14:29 ` Sagi Grimberg
2017-09-06 15:11 ` Chuck Lever
2017-09-06 15:23 ` Sagi Grimberg
2017-09-06 18:33 ` Chuck Lever
2017-09-06 19:39 ` Jason Gunthorpe
2017-09-06 20:02 ` Chuck Lever
2017-09-06 20:09 ` Jason Gunthorpe
2017-09-06 21:00 ` Chuck Lever
2017-09-06 21:11 ` Jason Gunthorpe [this message]
2017-09-07 13:17 ` Tom Talpey
2017-09-07 15:08 ` Jason Gunthorpe
2017-09-07 16:15 ` Tom Talpey
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=20170906211103.GA26642@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.com \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=sagi@grimberg.me \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).