Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: swise@opengridcomputing.com (Steve Wise)
Subject: [PATCH v4 3/3] nvmet-rdma: support max(16KB, PAGE_SIZE) inline data
Date: Tue, 19 Jun 2018 14:29:44 -0500	[thread overview]
Message-ID: <be676b5f-4de2-ef66-82c0-bd7263c1892e@opengridcomputing.com> (raw)
In-Reply-To: <75a24870-832c-1a4c-fe97-c1dfcf91c426@opengridcomputing.com>



On 6/19/2018 9:35 AM, Steve Wise wrote:
>
> On 6/19/2018 6:59 AM, Sagi Grimberg wrote:
>>
>> On 06/05/2018 08:16 PM, Steve Wise wrote:
>>> The patch enables inline data sizes using up to 4 recv sges, and capping
>>> the size at 16KB or at least 1 page size.
>> Question: any reason for that cap? Just seems like an arbitrary limit...
>>
> It was there in the original patch series, and I continued it.? I guess
> the idea is we don't want to be a memory hog.
>
>> ? So on a 4K page system, up to
>>> 16KB is supported, and for a 64K page system 1 page of 64KB is
>>> supported.
>> Well if someone asked for 16K and got 64K its a bit of a surprise
>> isn't it? without exposing knob for this, using 64K OK I guess, but when
>> we expose controls for this its a bit surprising.
>>
> I'm open to proposals for a better way to do all this.? Like perhaps
> just a knob for how many pages to allow?
>
>> Would page_frags work better here? (page_frag_alloc/page_frag_free)
>> Given that most likely the backend device will work with 4K pages, the
>> fragments won't cause gaps...
>>
> There's no comments on this API.? How does it work?? It allocates some
> number of contiguous fragments < a page?
>
>> Thoughts?
>>
>> ...
>>
>>
>>> +static int num_pages(int len)
>>> +{
>>> +??? return 1 + (((len - 1) & PAGE_MASK) >> PAGE_SHIFT);
>>> +}
>> Steve, can you explain why is this needed? why isn't get_order()
>> sufficient?
>>
> I thought get_order() gives you a power of two >= the length. ie 1, 2,
> 4, 8, 16.? For inline_data length of 12KB, for example, we want 3 pages,
> not 4.? Or am I mistaken?
>
>

Just to clarify here:? The target never allocates more that a single
page per recv SGE for inline data.? That was a change from v3-v4 of this
series.? I eliminated any page allocations of order > 0.? So num_pages()
is there to compute the number of pages used to represent len bytes of
inline data.? IE <= 4KB, 1 page. ? > 4KB and <= 8KB, 2 pages, etc...

Steve

  reply	other threads:[~2018-06-19 19:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-05 17:22 [PATCH v4 0/3] NVMF/RDMA 16K Inline Support Steve Wise
2018-06-05 17:16 ` [PATCH v4 1/3] nvme-rdma: correctly check for target keyed sgl support Steve Wise
2018-06-06 12:31   ` Christoph Hellwig
2018-06-05 17:16 ` [PATCH v4 2/3] nvme-rdma: support up to 4 segments of inline data Steve Wise
2018-06-05 17:16 ` [PATCH v4 3/3] nvmet-rdma: support max(16KB, PAGE_SIZE) " Steve Wise
2018-06-06  9:24   ` Sagi Grimberg
2018-06-07 19:53     ` Steve Wise
2018-06-19 11:59   ` Sagi Grimberg
2018-06-19 14:35     ` Steve Wise
2018-06-19 19:29       ` Steve Wise [this message]
2018-06-18 14:49 ` [PATCH v4 0/3] NVMF/RDMA 16K Inline Support Steve Wise
2018-06-18 15:18   ` Steve Wise
2018-06-19  5:40     ` Christoph Hellwig
2018-06-19  9:21       ` Max Gurtovoy
2018-06-19 14:41         ` Steve Wise
2018-06-19 16:02       ` Steve Wise
2018-06-19 17:43         ` Jason Gunthorpe
2018-06-20  8:24           ` Christoph Hellwig
2018-06-20 14:02             ` Steve Wise
2018-06-20 18:03             ` Jason Gunthorpe

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=be676b5f-4de2-ef66-82c0-bd7263c1892e@opengridcomputing.com \
    --to=swise@opengridcomputing.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox