From: Tom Talpey <tom@talpey.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: "Mora, Jorge" <Jorge.Mora@netapp.com>,
Chuck Lever <chuck.lever@oracle.com>,
Olga Kornievskaia <aglo@umich.edu>,
linux-rdma <linux-rdma@vger.kernel.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v1 4/4] xprtrdma: Plant XID in on-the-wire RDMA offset (FRWR)
Date: Mon, 19 Nov 2018 22:25:37 -0500 [thread overview]
Message-ID: <8fd325fa-290a-6381-80d8-e6ac20acffe8@talpey.com> (raw)
In-Reply-To: <20181120030916.GQ4890@ziepe.ca>
On 11/19/2018 10:09 PM, Jason Gunthorpe wrote:
> On Mon, Nov 19, 2018 at 09:45:24PM -0500, Tom Talpey wrote:
>> On 11/19/2018 5:46 PM, Jason Gunthorpe wrote:
>>> On Mon, Nov 19, 2018 at 09:42:56PM +0000, Mora, Jorge wrote:
>>>> Hello Chuck,
>>>>
>>>> I am confused, is it the whole purpose of RDMA is to place the data
>>>> directly into the memory location given by the virtual address or
>>>> offset? What you are saying is that this offset is not the actual
>>>> memory address and so the driver must map this offset to the actual
>>>> address?
>>>
>>> All RDMA on the wire addresses are 'virtual' and always go through
>>> translation hardware to reach a physical memory address. Even if you
>>> have a virtual address that matches your physical address there will
>>> still be translation hardware to enforce security.
>>>
>>> The direct placement refers to not copying data, not to using physical
>>> memory addresses throughout the protocol design.
>>>
>>> So it is better to use a virtual address that doesn't disclose any
>>> information about the host's configuration to the network, such as
>>> physical locations of kernel memory.
>>
>> Agreed. And, this is a very subtle but very powerful aspect of FRWR
>> registration, that the high-order bits of the "virtual address" can
>> basically be any value of the requestor's (client's) choice.
>>
>> Note, the low-order bits, up to the maximum offset used by the upper
>> layer (e.g. a few MB for NFS), must be reserved in order to allow RDMA
>> segments to iterate over the range of bytes in the region. That's only
>> 24 or so bits out of the available 64, here however.
>
> Why does it depend on protocol?
Because the maximum payload being RDMA's is an upper layer matter. The
idea here is to provide a certain number of "invariant" bits in the
offset / virtual address. Chuck proposes reserving just 32 bits, leaving
32 bits of range, quite comfy.
> So long as the adaptor can compute VA + Offset = Physical the upper
> bits can be changed.
Absolutely, but if the offset walks into the high-order invariant bits,
they won't be invariant any longer. It would still work, but it would
defeat the wireshark trick that Chuck wants to play.
> For many adaptors that means PAGE_SIZE or huge
> page size level alignment..
I'm not sure I understand this. The FRWR hides the native page size, by
providing the page frames in the local work request. Their size isn't
known to the protocol.
Tom.
next prev parent reply other threads:[~2018-11-20 3:25 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-19 15:45 [PATCH v1 0/4] NFS/RDMA client for v4.21 (part 1) Chuck Lever
2018-11-19 15:45 ` [PATCH v1 1/4] xprtrdma: Remove support for FMR memory registration Chuck Lever
2018-11-19 16:16 ` Bart Van Assche
2018-11-19 19:09 ` Leon Romanovsky
2018-11-19 20:52 ` Bart Van Assche
2018-11-20 5:37 ` Leon Romanovsky
2018-11-19 22:41 ` Jason Gunthorpe
2018-11-19 22:56 ` Chuck Lever
2018-11-19 23:10 ` Jason Gunthorpe
2018-11-20 15:22 ` Dennis Dalessandro
2018-11-19 15:45 ` [PATCH v1 2/4] xprtrdma: mrs_create off-by-one Chuck Lever
2018-11-19 15:46 ` [PATCH v1 3/4] xprtrdma: Reduce max_frwr_depth Chuck Lever
2018-11-19 15:46 ` [PATCH v1 4/4] xprtrdma: Plant XID in on-the-wire RDMA offset (FRWR) Chuck Lever
2018-11-19 17:47 ` Olga Kornievskaia
2018-11-19 17:58 ` Chuck Lever
2018-11-19 18:08 ` Olga Kornievskaia
2018-11-19 18:18 ` Chuck Lever
2018-11-19 18:47 ` Olga Kornievskaia
2018-11-19 18:58 ` Chuck Lever
2018-11-19 21:22 ` Olga Kornievskaia
2018-11-19 21:32 ` Chuck Lever
2018-11-19 21:42 ` Mora, Jorge
2018-11-19 22:46 ` Jason Gunthorpe
2018-11-20 2:45 ` Tom Talpey
2018-11-20 3:09 ` Jason Gunthorpe
2018-11-20 3:25 ` Tom Talpey [this message]
2018-11-20 3:32 ` Jason Gunthorpe
2018-11-20 3:38 ` Tom Talpey
2018-11-20 18:02 ` Anna Schumaker
2018-11-20 18:07 ` Chuck Lever
[not found] ` <94ff7ec712e086bfdd9c217a5f97c293a07151b9.camel@gmail.com>
2018-11-20 21:31 ` Chuck Lever
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=8fd325fa-290a-6381-80d8-e6ac20acffe8@talpey.com \
--to=tom@talpey.com \
--cc=Jorge.Mora@netapp.com \
--cc=aglo@umich.edu \
--cc=chuck.lever@oracle.com \
--cc=jgg@ziepe.ca \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-rdma@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 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).