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.
> -- 
> Pavel Begunkov


Reply via email to