From: Tom Talpey <tom@talpey.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
Sagi Grimberg <sagig@dev.mellanox.co.il>
Cc: Steve Wise <swise@opengridcomputing.com>,
"'Christoph Hellwig'" <hch@infradead.org>,
dledford@redhat.com, sagig@mellanox.com, ogerlitz@mellanox.com,
roid@mellanox.com, linux-rdma@vger.kernel.org, eli@mellanox.com,
target-devel@vger.kernel.org, linux-nfs@vger.kernel.org,
trond.myklebust@primarydata.com, bfields@fieldses.org,
Oren Duer <oren@mellanox.com>
Subject: Re: [PATCH V3 1/5] RDMA/core: Transport-independent access flags
Date: Thu, 09 Jul 2015 16:00:37 -0400 [thread overview]
Message-ID: <559ED2E5.3040901@talpey.com> (raw)
In-Reply-To: <20150709170142.GA21921@obsidianresearch.com>
On 7/9/2015 1:01 PM, Jason Gunthorpe wrote:
> Laid out like this, I think it even means we can nuke the IB DMA API
> for these cases. rdma_post_read and rdma_post_complete_read are the
> two points that need dma api calls (cache flushes), and they can just
> do them internally.
>
> This also tells me that the above call sites must already exist in
> every ULP, so we, again, are not really substantially changing
> core control flow for the ULP.
>
> Are there more details that wreck the world?
Two things come to mind - PD's, and virtualization.
If there's no ib_get_dma_mr() call, what PD does the region get?
One could argue it inherits the QP's (Emulex proposed such a
PD-less MR in this year's OFS Developer's Workshop). But this
could impose new conditions on ULP's; they would have to be
aware of this affinity and it could affect their QP use.
More importantly, if a guest can post FRWR work requests with
physical addresses, what enforces their validity? The dma_mr
provides a PD but it also allows the host partition to interpose
on the call, setting up an IOMMU mapping, creating a new NIC TPT
mapping, etc. Without this, it may be possible for hostile guest
to forge FRMR's and attack the host, or other guests.
> I didn't explore how errors work, but, I think, errors are just a
> labeling exercise:
> if (wc is error && wc.wrid == read_wrid
> rdma_error_complete_read(...,read_wrid,wc)
>
> Error recovery blows up the QP, so we just need to book keep and get
> the MRs accounted for. The driver could do a synchronous clean up of
> whatever mess is left during the next create_qp, or on the PD destroy.
This is a subtle area. If the driver posts silenced completions as
you describe, there may not be a wc to reap. So either the driver or
the ULP will need to post a sentinel, the completion of which indicates
any prior silenced operations have actually done so. This can be
hard to get right. And if the driver posts everything signaled, well,
performance at high IOPS will be a challenge. The ULP is much better
positioned to manage that.
I'm with you on the flow control, btw. It's a new rule for the
ULP to obey, but probably not too onerous. Remember though, verbs
today return EAGAIN when the queue you're posting is full (a
terrible choice IMO). So upper layers don't actually need to
count WR's, unless they want to.
Tom.
next prev parent reply other threads:[~2015-07-09 20:00 UTC|newest]
Thread overview: 223+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-05 23:21 [PATCH V3 0/5] Transport-independent MRs Steve Wise
2015-07-05 23:22 ` [PATCH V3 1/5] RDMA/core: Transport-independent access flags Steve Wise
2015-07-06 5:25 ` Christoph Hellwig
2015-07-06 14:23 ` Steve Wise
2015-07-06 14:23 ` Steve Wise
2015-07-07 8:58 ` 'Christoph Hellwig'
2015-07-06 7:09 ` Haggai Eran
2015-07-06 7:09 ` Haggai Eran
2015-07-06 14:29 ` Steve Wise
2015-07-06 14:29 ` Steve Wise
2015-07-07 14:17 ` Steve Wise
2015-07-07 14:17 ` Steve Wise
2015-07-07 14:34 ` Haggai Eran
2015-07-07 14:34 ` Haggai Eran
2015-07-07 14:46 ` Steve Wise
2015-07-07 14:46 ` Steve Wise
2015-07-07 15:07 ` Haggai Eran
2015-07-07 15:07 ` Haggai Eran
2015-07-06 7:53 ` Sagi Grimberg
2015-07-06 7:53 ` Sagi Grimberg
2015-07-06 14:37 ` Steve Wise
2015-07-06 14:37 ` Steve Wise
2015-07-06 16:17 ` Sagi Grimberg
2015-07-06 16:17 ` Sagi Grimberg
2015-07-06 16:55 ` Steve Wise
2015-07-06 16:55 ` Steve Wise
2015-07-07 9:00 ` Christoph Hellwig
2015-07-07 9:14 ` Sagi Grimberg
2015-07-07 9:14 ` Sagi Grimberg
2015-07-07 14:05 ` Steve Wise
2015-07-07 14:05 ` Steve Wise
2015-07-07 16:17 ` Jason Gunthorpe
2015-07-07 16:17 ` Jason Gunthorpe
2015-07-07 16:27 ` Sagi Grimberg
2015-07-07 16:27 ` Sagi Grimberg
2015-07-07 21:36 ` Jason Gunthorpe
2015-07-07 21:36 ` Jason Gunthorpe
2015-07-08 7:29 ` Sagi Grimberg
2015-07-08 8:13 ` 'Christoph Hellwig'
2015-07-08 8:13 ` 'Christoph Hellwig'
2015-07-08 10:05 ` Sagi Grimberg
2015-07-08 10:05 ` Sagi Grimberg
2015-07-08 10:20 ` 'Christoph Hellwig'
2015-07-08 10:20 ` 'Christoph Hellwig'
2015-07-08 11:08 ` Sagi Grimberg
2015-07-08 11:08 ` Sagi Grimberg
2015-07-08 17:14 ` Hefty, Sean
2015-07-08 17:14 ` Hefty, Sean
2015-07-09 8:46 ` Sagi Grimberg
2015-07-09 13:52 ` Chuck Lever
2015-07-10 19:34 ` Christoph Hellwig
2015-07-12 7:49 ` Sagi Grimberg
2015-07-13 16:50 ` Jason Gunthorpe
2015-07-14 8:06 ` Sagi Grimberg
2015-07-14 12:24 ` Tom Talpey
2015-07-14 12:24 ` Tom Talpey
2015-07-14 13:21 ` Sagi Grimberg
2015-07-14 13:21 ` Sagi Grimberg
2015-07-23 0:43 ` Hefty, Sean
2015-07-23 0:43 ` Hefty, Sean
2015-07-08 19:08 ` Jason Gunthorpe
2015-07-08 20:32 ` 'Christoph Hellwig'
2015-07-08 20:32 ` 'Christoph Hellwig'
2015-07-08 20:37 ` 'Christoph Hellwig'
2015-07-08 20:37 ` 'Christoph Hellwig'
2015-07-09 0:03 ` Jason Gunthorpe
2015-07-09 8:00 ` 'Christoph Hellwig'
2015-07-09 8:00 ` 'Christoph Hellwig'
2015-07-09 8:58 ` Sagi Grimberg
2015-07-09 8:58 ` Sagi Grimberg
2015-07-09 22:18 ` Doug Ledford
2015-07-09 22:18 ` Doug Ledford
2015-07-09 22:53 ` Jason Gunthorpe
2015-07-09 22:53 ` Jason Gunthorpe
2015-07-10 13:22 ` Tom Talpey
2015-07-10 16:11 ` Jason Gunthorpe
2015-07-10 16:11 ` Jason Gunthorpe
2015-07-10 17:56 ` Doug Ledford
2015-07-10 18:34 ` Chuck Lever
2015-07-10 18:42 ` Tom Talpey
2015-07-10 19:54 ` Jason Gunthorpe
2015-07-10 19:54 ` Jason Gunthorpe
2015-07-10 20:48 ` Jason Gunthorpe
2015-07-10 22:33 ` Doug Ledford
2015-07-10 22:33 ` Doug Ledford
2015-07-11 10:17 ` 'Christoph Hellwig'
2015-07-11 10:17 ` 'Christoph Hellwig'
2015-07-13 16:57 ` Jason Gunthorpe
2015-07-13 16:57 ` Jason Gunthorpe
2015-07-14 7:25 ` 'Christoph Hellwig'
2015-07-14 9:05 ` Sagi Grimberg
2015-07-14 15:35 ` 'Christoph Hellwig'
2015-07-14 17:26 ` Jason Gunthorpe
2015-07-15 7:10 ` Sagi Grimberg
2015-07-15 7:10 ` Sagi Grimberg
2015-07-10 22:30 ` Doug Ledford
2015-07-10 22:30 ` Doug Ledford
2015-07-10 20:57 ` Jason Gunthorpe
2015-07-10 22:27 ` Doug Ledford
2015-07-10 22:27 ` Doug Ledford
[not found] ` <20150710233417.GA8919@obsidianresearch.com>
2015-07-11 3:10 ` Doug Ledford
2015-07-11 3:10 ` Doug Ledford
2015-07-13 17:18 ` Jason Gunthorpe
2015-07-13 17:18 ` Jason Gunthorpe
2015-07-13 22:23 ` Tom Talpey
2015-07-11 16:37 ` Steve Wise
2015-07-12 10:46 ` Sagi Grimberg
2015-07-12 10:46 ` Sagi Grimberg
2015-07-14 19:25 ` Steve Wise
2015-07-14 19:25 ` Steve Wise
2015-07-14 19:29 ` Jason Gunthorpe
2015-07-14 19:32 ` Steve Wise
2015-07-14 19:32 ` Steve Wise
2015-07-14 19:37 ` Jason Gunthorpe
2015-07-14 19:55 ` 'Christoph Hellwig'
2015-07-14 19:55 ` 'Christoph Hellwig'
2015-07-14 20:10 ` Steve Wise
2015-07-14 20:10 ` Steve Wise
2015-07-14 20:29 ` Jason Gunthorpe
2015-07-14 20:29 ` Jason Gunthorpe
2015-07-14 20:40 ` Steve Wise
2015-07-14 20:40 ` Steve Wise
2015-07-14 20:44 ` Jason Gunthorpe
2015-07-14 20:44 ` Jason Gunthorpe
2015-07-14 20:54 ` Steve Wise
2015-07-14 20:54 ` Steve Wise
2015-07-14 20:59 ` Jason Gunthorpe
2015-07-14 20:59 ` Jason Gunthorpe
2015-07-14 20:50 ` Tom Talpey
2015-07-14 20:50 ` Tom Talpey
2015-07-15 6:50 ` 'Christoph Hellwig'
2015-07-15 19:12 ` Jason Gunthorpe
2015-07-15 19:12 ` Jason Gunthorpe
2015-07-16 6:41 ` Jason Gunthorpe
2015-07-16 6:41 ` Jason Gunthorpe
2015-07-16 8:04 ` 'Christoph Hellwig'
2015-07-16 8:04 ` 'Christoph Hellwig'
2015-07-16 16:13 ` Jason Gunthorpe
2015-07-16 16:13 ` Jason Gunthorpe
2015-07-15 8:47 ` Sagi Grimberg
2015-07-15 8:47 ` Sagi Grimberg
2015-07-15 12:19 ` 'Christoph Hellwig'
2015-07-15 12:19 ` 'Christoph Hellwig'
2015-07-15 19:17 ` Jason Gunthorpe
2015-07-15 19:17 ` Jason Gunthorpe
2015-07-14 20:46 ` Tom Talpey
2015-07-14 19:45 ` 'Christoph Hellwig'
2015-07-14 19:57 ` Jason Gunthorpe
2015-07-14 19:57 ` Jason Gunthorpe
2015-07-14 19:58 ` Steve Wise
2015-07-14 19:58 ` Steve Wise
2015-07-14 20:41 ` Jason Gunthorpe
2015-07-14 20:41 ` Jason Gunthorpe
2015-07-14 20:51 ` Steve Wise
2015-07-14 20:51 ` Steve Wise
2015-07-14 21:01 ` Steve Wise
2015-07-14 21:01 ` Steve Wise
2015-07-14 21:14 ` Jason Gunthorpe
2015-07-14 21:14 ` Jason Gunthorpe
2015-07-23 18:53 ` Hefty, Sean
2015-07-23 18:53 ` Hefty, Sean
2015-07-23 19:03 ` Steve Wise
2015-07-23 19:03 ` Steve Wise
2015-07-23 23:30 ` Hefty, Sean
2015-07-23 23:30 ` Hefty, Sean
2015-07-23 23:53 ` Jason Gunthorpe
2015-07-23 23:53 ` Jason Gunthorpe
2015-07-24 0:18 ` Hefty, Sean
2015-07-24 0:18 ` Hefty, Sean
2015-07-24 4:46 ` Jason Gunthorpe
2015-07-09 8:47 ` Sagi Grimberg
2015-07-09 8:47 ` Sagi Grimberg
2015-07-08 21:38 ` Tom Talpey
2015-07-08 23:36 ` Jason Gunthorpe
2015-07-09 11:02 ` Sagi Grimberg
2015-07-09 17:01 ` Jason Gunthorpe
2015-07-09 17:01 ` Jason Gunthorpe
2015-07-09 20:00 ` Tom Talpey [this message]
2015-07-09 21:16 ` Jason Gunthorpe
[not found] ` <20150709170142.GA21921-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-10 8:55 ` kernel memory registration (was: RDMA/core: Transport-independent access flags) Sagi Grimberg
[not found] ` <559F8881.7070308-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-10 16:35 ` Jason Gunthorpe
2015-07-11 10:31 ` 'Christoph Hellwig'
[not found] ` <20150711103153.GC14741-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-13 16:46 ` Jason Gunthorpe
[not found] ` <20150713164652.GC23832-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-07-14 8:24 ` kernel memory registration Sagi Grimberg
[not found] ` <55A4C73A.7080001-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-14 17:24 ` Jason Gunthorpe
2015-07-11 10:25 ` [PATCH V3 1/5] RDMA/core: Transport-independent access flags 'Christoph Hellwig'
2015-07-13 16:35 ` Jason Gunthorpe
2015-07-13 19:36 ` Tom Talpey
2015-07-13 20:15 ` Jason Gunthorpe
2015-07-14 9:10 ` Sagi Grimberg
2015-07-14 9:10 ` Sagi Grimberg
2015-07-14 15:36 ` 'Christoph Hellwig'
2015-07-14 15:36 ` 'Christoph Hellwig'
2015-07-14 15:47 ` Tom Talpey
2015-07-14 15:47 ` Tom Talpey
2015-07-14 16:22 ` Jason Gunthorpe
2015-07-14 16:22 ` Jason Gunthorpe
2015-07-14 7:37 ` 'Christoph Hellwig'
2015-07-14 9:22 ` Sagi Grimberg
2015-07-14 12:12 ` Tom Talpey
2015-07-14 12:12 ` Tom Talpey
2015-07-14 13:23 ` Sagi Grimberg
2015-07-14 14:45 ` Steve Wise
2015-07-14 14:45 ` Steve Wise
2015-07-14 15:40 ` 'Christoph Hellwig'
2015-07-14 15:40 ` 'Christoph Hellwig'
2015-07-08 8:11 ` 'Christoph Hellwig'
2015-07-06 7:58 ` Sagi Grimberg
2015-07-06 7:58 ` Sagi Grimberg
2015-07-06 14:39 ` Steve Wise
2015-07-06 14:39 ` Steve Wise
2015-07-05 23:22 ` [PATCH V3 2/5] RDMA/iser: Use transport independent MR allocation Steve Wise
2015-07-05 23:22 ` [PATCH V3 3/5] RDMA/isert: " Steve Wise
2015-07-05 23:22 ` Steve Wise
2015-07-05 23:22 ` [PATCH V3 4/5] svcrdma: " Steve Wise
2015-07-05 23:22 ` Steve Wise
2015-07-05 23:22 ` [PATCH V3 5/5] xprtrdma: " Steve Wise
2015-07-05 23:22 ` Steve Wise
2015-07-06 5:25 ` [PATCH V3 0/5] Transport-independent MRs Christoph Hellwig
2015-07-06 5:25 ` Christoph Hellwig
2015-07-06 14:24 ` Steve Wise
2015-07-06 14:24 ` Steve Wise
2015-07-07 9:01 ` 'Christoph Hellwig'
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=559ED2E5.3040901@talpey.com \
--to=tom@talpey.com \
--cc=bfields@fieldses.org \
--cc=dledford@redhat.com \
--cc=eli@mellanox.com \
--cc=hch@infradead.org \
--cc=jgunthorpe@obsidianresearch.com \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=oren@mellanox.com \
--cc=roid@mellanox.com \
--cc=sagig@dev.mellanox.co.il \
--cc=sagig@mellanox.com \
--cc=swise@opengridcomputing.com \
--cc=target-devel@vger.kernel.org \
--cc=trond.myklebust@primarydata.com \
/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.