All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Talpey <tom@talpey.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: linux-rdma@vger.kernel.org,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v3 05/15] xprtrdma: Remove last ib_reg_phys_mr() call site
Date: Mon, 20 Jul 2015 15:30:23 -0700	[thread overview]
Message-ID: <55AD767F.1030800@talpey.com> (raw)
In-Reply-To: <6AEC449B-7E77-4DD1-BE6F-A68F6D8D022D@oracle.com>

On 7/20/2015 3:21 PM, Chuck Lever wrote:
>
> On Jul 20, 2015, at 5:55 PM, Tom Talpey <tom@talpey.com> wrote:
>
>> On 7/20/2015 1:55 PM, Chuck Lever wrote:
>>> On Jul 20, 2015, at 4:34 PM, Tom Talpey <tom@talpey.com> wrote:
>>>
>>>> On 7/20/2015 12:03 PM, Chuck Lever wrote:
>>>>> All HCA providers have an ib_get_dma_mr() verb. Thus
>>>>> rpcrdma_ia_open() will either grab the device's local_dma_key if one
>>>>> is available, or it will call ib_get_dma_mr() which is a 100%
>>>>> guaranteed fallback.
>>>>
>>>> I recall that in the past, some providers did not support mapping
>>>> all of the machine's potential physical memory with a single dma_mr.
>>>> If an rnic did/does not support 44-ish bits of length per region,
>>>> for example.
>>>
>>> The buffers affected by this change are small, so I’m confident that
>>> restriction would not be a problem here.
>>
>> It's not about the buffer size, it's about the region. Because the
>> get_dma_mr does not specify a base address and length, the rnic must
>> basically attempt to map a base of zero and a length of the largest
>> physical offset.
>
> Understood now, but:
>
>
>> This is not the case with the previous phys_reg_mr, which specified
>> the exact phys page range.
>
> rpcrdma_ia_open() fails immediately if IB_DEVICE_LOCAL_DMA_LKEY
> is not asserted _and_ ib_get_dma_mr() fails. We never get to the
> logic in rpcrdma_regbuf_alloc() in that case, so ib_reg_phys_mr()
> would still never be invoked. That really is dead code.
>
> If you prefer, I can adjust the patch description to remove the
> “100% guaranteed fallback” line.


Ok, good and yes 100% sounds like a risky statement.

WARNING: multiple messages have this Message-ID (diff)
From: Tom Talpey <tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
To: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Linux NFS Mailing List
	<linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v3 05/15] xprtrdma: Remove last ib_reg_phys_mr() call site
Date: Mon, 20 Jul 2015 15:30:23 -0700	[thread overview]
Message-ID: <55AD767F.1030800@talpey.com> (raw)
In-Reply-To: <6AEC449B-7E77-4DD1-BE6F-A68F6D8D022D-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>

On 7/20/2015 3:21 PM, Chuck Lever wrote:
>
> On Jul 20, 2015, at 5:55 PM, Tom Talpey <tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org> wrote:
>
>> On 7/20/2015 1:55 PM, Chuck Lever wrote:
>>> On Jul 20, 2015, at 4:34 PM, Tom Talpey <tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org> wrote:
>>>
>>>> On 7/20/2015 12:03 PM, Chuck Lever wrote:
>>>>> All HCA providers have an ib_get_dma_mr() verb. Thus
>>>>> rpcrdma_ia_open() will either grab the device's local_dma_key if one
>>>>> is available, or it will call ib_get_dma_mr() which is a 100%
>>>>> guaranteed fallback.
>>>>
>>>> I recall that in the past, some providers did not support mapping
>>>> all of the machine's potential physical memory with a single dma_mr.
>>>> If an rnic did/does not support 44-ish bits of length per region,
>>>> for example.
>>>
>>> The buffers affected by this change are small, so I’m confident that
>>> restriction would not be a problem here.
>>
>> It's not about the buffer size, it's about the region. Because the
>> get_dma_mr does not specify a base address and length, the rnic must
>> basically attempt to map a base of zero and a length of the largest
>> physical offset.
>
> Understood now, but:
>
>
>> This is not the case with the previous phys_reg_mr, which specified
>> the exact phys page range.
>
> rpcrdma_ia_open() fails immediately if IB_DEVICE_LOCAL_DMA_LKEY
> is not asserted _and_ ib_get_dma_mr() fails. We never get to the
> logic in rpcrdma_regbuf_alloc() in that case, so ib_reg_phys_mr()
> would still never be invoked. That really is dead code.
>
> If you prefer, I can adjust the patch description to remove the
> “100% guaranteed fallback” line.


Ok, good and yes 100% sounds like a risky statement.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2015-07-20 22:29 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-20 19:02 [PATCH v3 00/15] NFS/RDMA client side for Linux 4.3 Chuck Lever
2015-07-20 19:02 ` Chuck Lever
2015-07-20 19:02 ` [PATCH v3 01/15] xprtrdma: Make xprt_setup_rdma() agnostic to family of server address Chuck Lever
2015-07-20 19:02   ` Chuck Lever
2015-07-26 16:49   ` Christoph Hellwig
2015-07-26 16:49     ` Christoph Hellwig
2015-07-20 19:02 ` [PATCH v3 02/15] xprtrdma: Raise maximum payload size to one megabyte Chuck Lever
2015-07-20 19:02   ` Chuck Lever
2015-07-20 19:02 ` [PATCH v3 03/15] xprtrdma: Increase default credit limit Chuck Lever
2015-07-20 19:02   ` Chuck Lever
2015-07-20 19:03 ` [PATCH v3 04/15] xprtrdma: Don't fall back to PHYSICAL memory registration Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-26 16:50   ` Christoph Hellwig
2015-07-26 16:50     ` Christoph Hellwig
2015-07-20 19:03 ` [PATCH v3 05/15] xprtrdma: Remove last ib_reg_phys_mr() call site Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-20 20:34   ` Tom Talpey
2015-07-20 20:34     ` Tom Talpey
2015-07-20 20:55     ` Chuck Lever
2015-07-20 20:55       ` Chuck Lever
2015-07-20 21:55       ` Tom Talpey
2015-07-20 21:55         ` Tom Talpey
2015-07-20 22:21         ` Chuck Lever
2015-07-20 22:21           ` Chuck Lever
2015-07-20 22:30           ` Tom Talpey [this message]
2015-07-20 22:30             ` Tom Talpey
2015-07-20 21:05     ` Jason Gunthorpe
2015-07-20 21:05       ` Jason Gunthorpe
2015-07-20 21:16       ` Steve Wise
2015-07-20 21:16         ` Steve Wise
2015-07-20 22:04         ` Tom Talpey
2015-07-20 22:04           ` Tom Talpey
2015-07-20 22:17           ` Jason Gunthorpe
2015-07-20 22:17             ` Jason Gunthorpe
2015-07-20 22:26             ` Tom Talpey
2015-07-20 22:26               ` Tom Talpey
2015-07-20 22:41           ` Steve Wise
2015-07-20 22:41             ` Steve Wise
2015-07-20 22:42             ` Jason Gunthorpe
2015-07-20 22:42               ` Jason Gunthorpe
2015-07-21 22:41               ` Steve Wise
2015-07-21 22:41                 ` Steve Wise
2015-07-21 22:54                 ` Jason Gunthorpe
2015-07-21 22:54                   ` Jason Gunthorpe
2015-07-22 13:58                   ` Steve Wise
2015-07-22 13:58                     ` Steve Wise
2015-07-21  0:15             ` Tom Talpey
2015-07-21  0:15               ` Tom Talpey
2015-07-21 14:33               ` Steve Wise
2015-07-21 14:33                 ` Steve Wise
2015-07-21 20:47                 ` Tom Talpey
2015-07-21 20:47                   ` Tom Talpey
2015-07-21 20:55                   ` Steve Wise
2015-07-21 20:55                     ` Steve Wise
2015-07-21 21:22                   ` Steve Wise
2015-07-21 21:22                     ` Steve Wise
2015-07-20 21:34       ` Steve Wise
2015-07-20 21:34         ` Steve Wise
2015-07-20 21:37       ` Steve Wise
2015-07-20 21:37         ` Steve Wise
2015-07-20 22:13         ` Jason Gunthorpe
2015-07-20 22:13           ` Jason Gunthorpe
2015-07-20 22:43           ` Steve Wise
2015-07-20 22:43             ` Steve Wise
2015-07-20 22:54             ` Jason Gunthorpe
2015-07-20 22:54               ` Jason Gunthorpe
2015-07-20 22:54               ` Steve Wise
2015-07-20 22:54                 ` Steve Wise
2015-07-20 22:26   ` Jason Gunthorpe
2015-07-20 22:26     ` Jason Gunthorpe
2015-07-20 22:31     ` Chuck Lever
2015-07-20 22:31       ` Chuck Lever
2015-07-20 22:41       ` Jason Gunthorpe
2015-07-20 22:41         ` Jason Gunthorpe
2015-07-20 23:36         ` Chuck Lever
2015-07-20 23:36           ` Chuck Lever
2015-07-21  0:11           ` Tom Talpey
2015-07-21  0:11             ` Tom Talpey
2015-07-21  0:34             ` Chuck Lever
2015-07-21  0:34               ` Chuck Lever
2015-07-21  1:03               ` Tom Talpey
2015-07-21  1:03                 ` Tom Talpey
2015-07-20 19:03 ` [PATCH v3 06/15] xprtrdma: Clean up rpcrdma_ia_open() Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-26 16:53   ` Christoph Hellwig
2015-07-26 16:53     ` Christoph Hellwig
2015-07-26 18:21     ` Chuck Lever
2015-07-26 18:21       ` Chuck Lever
2015-07-26 18:51       ` Christoph Hellwig
2015-07-26 18:51         ` Christoph Hellwig
2015-07-20 19:03 ` [PATCH v3 07/15] xprtrdma: Remove logic that constructs RDMA_MSGP type calls Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-20 19:03 ` [PATCH v3 08/15] xprtrdma: Account for RPC/RDMA header size when deciding to inline Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-20 19:03 ` [PATCH v3 09/15] xprtrdma: Always provide a write list when sending NFS READ Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-20 19:03 ` [PATCH v3 10/15] xprtrdma: Don't provide a reply chunk when expecting a short reply Chuck Lever
2015-07-20 19:03   ` Chuck Lever
2015-07-20 19:04 ` [PATCH v3 11/15] xprtrdma: Fix XDR tail buffer marshalling Chuck Lever
2015-07-20 19:04   ` Chuck Lever
2015-07-20 19:04 ` [PATCH v3 12/15] xprtrdma: Fix large NFS SYMLINK calls Chuck Lever
2015-07-20 19:04   ` Chuck Lever
2015-07-20 19:04 ` [PATCH v3 13/15] xprtrdma: Clean up xprt_rdma_print_stats() Chuck Lever
2015-07-20 19:04   ` Chuck Lever
2015-07-20 19:04 ` [PATCH v3 14/15] xprtrdma: Count RDMA_NOMSG type calls Chuck Lever
2015-07-20 19:04   ` Chuck Lever
2015-07-20 19:04 ` [PATCH v3 15/15] core: Remove the ib_reg_phys_mr() and ib_rereg_phys_mr() verbs Chuck Lever
2015-07-20 19:04   ` Chuck Lever
2015-07-21 20:08   ` Anna Schumaker
2015-07-21 20:08     ` Anna Schumaker
2015-07-21 20:16     ` Chuck Lever
2015-07-21 20:16       ` Chuck Lever
2015-07-21 20:18       ` Anna Schumaker
2015-07-21 20:18         ` Anna Schumaker

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=55AD767F.1030800@talpey.com \
    --to=tom@talpey.com \
    --cc=chuck.lever@oracle.com \
    --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 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.