On Thu, Jul 30, 2026 at 4:36 AM Anuj Gupta/Anuj Gupta <[email protected]> wrote: > > On 7/30/2026 4:11 PM, Pavel Begunkov wrote: > >> > >> I wonder if it's possible to perform the PRP list page allocations and > >> initialization in nvme_dma_buf_io_map() instead of the I/O path. The > >> NVMe dma_pools are per-NUMA-node linked lists protected by spinlocks, > >> making them significant CPU hotspots. If the dmabuf registration set > >> up a contiguous DMA-coherent list of PRP entries for the pages of the > >> registered buffer, any command using the dmabuf and requiring at most > >> 1 PRP list page (i.e. length <= 2 MB) could just set its PRP list > >> pointer to an offset into the dmabuf's PRP list. > > > > Possible to an extent, predecessor patches tried that, I left it for > > later to keep the series simpler. I guess chaining won't work in > > general case. > > I mentioned this to Kanchan, Anuj and Nitesh before, they were up to > > playing with nvme optimisations in general, and since sgl from Anuj > > is ready, maybe they already have a prototype somewhere for that. > > > > Right, I have prototyped the PRP list optimisation before. I will send > it once the initial version of this series lands, to avoid adding new > review churn while the rest of the series is pretty settled.
Sure, landing it subsequently makes sense. Glad to hear it's already in the works. Thanks, Caleb

