Thread (36 messages) 36 messages, 9 authors, 2022-01-20

Re: Phyr Starter

From: Christoph Hellwig <hch@lst.de>
Date: 2022-01-20 14:09:51
Also in: linux-block, linux-mm, linux-rdma, lkml, nvdimm

On Tue, Jan 11, 2022 at 04:26:48PM -0400, Jason Gunthorpe wrote:
What I did in RDMA was make an iterator rdma_umem_for_each_dma_block()

The driver passes in the page size it wants and the iterator breaks up
the SGL into that size.

So, eg on a 16k page size system the SGL would be full of 16K stuff,
but the driver only support 4k and so the iterator hands out 4 pages
for each SGL entry.

All the drivers use this to build their DMA lists and tables, it works
really well.
The block layer also has the equivalent functionality by setting the
virt_boundary value in the queue_limits.  This is needed for NVMe
PRPs and RDMA drivers.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help