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.