[PATCH 7/9] nvme-pci: convert the data mapping blk_rq_dma_map
Christoph Hellwig
hch at lst.de
Wed Jun 11 22:02:56 PDT 2025
On Wed, Jun 11, 2025 at 02:15:10PM +0200, Daniel Gomez wrote:
> > #define NVME_MAX_SEGS \
> > - min(NVME_CTRL_PAGE_SIZE / sizeof(struct nvme_sgl_desc), \
> > - (PAGE_SIZE / sizeof(struct scatterlist)))
> > + (NVME_CTRL_PAGE_SIZE / sizeof(struct nvme_sgl_desc))
>
> The 8 MiB max transfer size is only reachable if host segments are at least 32k.
> But I think this limitation is only on the SGL side, right?
Yes, PRPs don't really have the concept of segments to start with.
> Adding support to
> multiple SGL segments should allow us to increase this limit 256 -> 2048.
>
> Is this correct?
Yes. Note that plenty of hardware doesn't really like chained SGLs too
much and you might get performance degradation.
More information about the Linux-nvme
mailing list