diff options
| author | Damien Le Moal <[email protected]> | 2025-03-13 08:22:18 +0000 |
|---|---|---|
| committer | Keith Busch <[email protected]> | 2025-04-01 16:01:05 +0000 |
| commit | ea7789c1541084a3dae65ffd36778348dd98f61b (patch) | |
| tree | 120bc59e176c7a14f8712645cd88ebdd43773c0d /tools/lib/bpf/bpf_helpers.h | |
| parent | block: remove unused nseg parameter (diff) | |
| download | kernel-ea7789c1541084a3dae65ffd36778348dd98f61b.tar.gz kernel-ea7789c1541084a3dae65ffd36778348dd98f61b.zip | |
nvmet: pci-epf: Keep completion queues mapped
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.
Signed-off-by: Damien Le Moal <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Signed-off-by: Keith Busch <[email protected]>
Diffstat (limited to 'tools/lib/bpf/bpf_helpers.h')
0 files changed, 0 insertions, 0 deletions
