[PATCH v2] nvmet: pci-epf: Keep completion queues mapped
Keith Busch
kbusch at kernel.org
Thu Mar 13 10:15:47 PDT 2025
On Thu, Mar 13, 2025 at 05:22:18PM +0900, Damien Le Moal wrote:
> Instead of mapping and unmapping the completion queues memory to the
> host PCI address space whenever nvmet_pci_epf_cq_work() is called, map
> a completion queue to the host PCI address space when the completion
> queue is created with nvmet_pci_epf_create_cq() and unmap it when the
> completion queue is deleted with nvmet_pci_epf_delete_cq().
>
> This removes the completion queue mapping/unmapping from
> nvmet_pci_epf_cq_work() and significantly increases performance. For
> a single job 4K random read QD=1 workload, the IOPS is increased from
> 23 KIOPS to 25 KIOPS. Some significant throughput increasde for high
> queue depth and large IOs workloads can also be seen.
>
> Since the functions nvmet_pci_epf_map_queue() and
> nvmet_pci_epf_unmap_queue() are called respectively only from
> nvmet_pci_epf_create_cq() and nvmet_pci_epf_delete_cq(), these functions
> are removed and open-coded in their respective call sites.
Thanks, applied to nvme-6.15.
More information about the Linux-nvme
mailing list