From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Maor Gottlieb <maorg@nvidia.com>, Christoph Hellwig <hch@lst.de>,
Gal Pressman <galpress@amazon.com>,
Bob Pearson <rpearsonhpe@gmail.com>,
Leon Romanovsky <leonro@nvidia.com>,
linux-rdma@vger.kernel.org
Subject: Re: dynamic-sg patch has broken rdma_rxe
Date: Tue, 20 Oct 2020 14:09:23 +0100 [thread overview]
Message-ID: <3eb34c54-1d19-8a4e-f391-e422fbca587d@linux.intel.com> (raw)
In-Reply-To: <20201020125659.GD6219@nvidia.com>
On 20/10/2020 13:56, Jason Gunthorpe wrote:
> On Tue, Oct 20, 2020 at 01:31:27PM +0100, Tvrtko Ursulin wrote:
>>
>> On 20/10/2020 12:47, Jason Gunthorpe wrote:
>>> On Tue, Oct 20, 2020 at 12:37:05PM +0100, Tvrtko Ursulin wrote:
>>>
>>>>> Why put this confusing code in every caller? Especially for something
>>>>> a driver is supposed to call. Will just make bugs
>>>>
>>>> For max_segment to be aligned is a requirement today so callers are
>>>> ready.
>>>
>>> No, it turns out all the RDMA drivers were became broken when they
>>> converted to use the proper U32_MAX for their DMA max_segment size,
>>> then they couldn't form SGLs anymore.
>>>
>>> I don't want to see nonsense code like this:
>>>
>>> dma_set_max_seg_size(dev->dev, min_t(unsigned int, U32_MAX & PAGE_MASK,
>>> SCATTERLIST_MAX_SEGMENT));
>>>
>>> In drivers.
>>>
>>> dma_set_max_seg_size is the *hardware* capability, and mixing in
>>> things like PAG_MASK here is just nonsense.
>>
>> Code was obviously a no-op non-sense.
>>
>> So the crux of the argument is that U32_MAX is conceptually the right thing
>> which defines the DMA max_segment size? Not some DMA define or anything, but
>> really U32_MAX? And that all/some DMA hardware does not think in pages but
>> really in bytes?
>
> Yes.
>
> The HW has 32 bits for a length field, so U32_MAX accurately defines
> the HW DMA capability
Not just the max, but the granularity as well. If byte granularity (well
less than PAGE_SIZE/4k) exists in some hw then I agree the API change
makes sense.
Regards,
Tvrtko
next prev parent reply other threads:[~2020-10-20 13:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-13 14:33 dynamic-sg patch has broken rdma_rxe Bob Pearson
2020-10-13 16:34 ` Bob Pearson
2020-10-14 22:51 ` Jason Gunthorpe
2020-10-15 7:44 ` Maor Gottlieb
2020-10-15 11:23 ` Gal Pressman
2020-10-15 12:21 ` Maor Gottlieb
2020-10-16 0:31 ` Jason Gunthorpe
2020-10-16 7:13 ` Christoph Hellwig
[not found] ` <796ca31aed8f469c957cb850385b9d09@intel.com>
2020-10-16 11:58 ` Jason Gunthorpe
2020-10-19 9:50 ` Tvrtko Ursulin
2020-10-19 12:12 ` Jason Gunthorpe
2020-10-19 12:29 ` Tvrtko Ursulin
2020-10-19 12:48 ` Jason Gunthorpe
2020-10-20 11:37 ` Tvrtko Ursulin
2020-10-20 11:47 ` Jason Gunthorpe
2020-10-20 12:31 ` Tvrtko Ursulin
2020-10-20 12:56 ` Jason Gunthorpe
2020-10-20 13:09 ` Tvrtko Ursulin [this message]
2020-10-20 13:32 ` Jason Gunthorpe
2020-10-15 15:35 ` Bob Pearson
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=3eb34c54-1d19-8a4e-f391-e422fbca587d@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=galpress@amazon.com \
--cc=hch@lst.de \
--cc=jgg@nvidia.com \
--cc=leonro@nvidia.com \
--cc=linux-rdma@vger.kernel.org \
--cc=maorg@nvidia.com \
--cc=rpearsonhpe@gmail.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.