Commit fcc1652c authored by Jim Harris's avatar Jim Harris
Browse files

nvme/pcie: allocate cq from device-local numa node's memory



Signed-off-by: default avatarJim Harris <jim.harris@samsung.com>
Change-Id: I5c2fd1baa8584d3332dbc2d073e3d3d7e99ed062
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24149


Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent e979d56f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ nvme_pcie_qpair_construct(struct spdk_nvme_qpair *qpair,
	size_t			page_align = sysconf(_SC_PAGESIZE);
	size_t			queue_align, queue_len;
	uint32_t                flags = SPDK_MALLOC_DMA;
	int32_t			numa_id;
	uint64_t		sq_paddr = 0;
	uint64_t		cq_paddr = 0;

@@ -182,7 +183,8 @@ nvme_pcie_qpair_construct(struct spdk_nvme_qpair *qpair,
	} else {
		queue_len = pqpair->num_entries * sizeof(struct spdk_nvme_cpl);
		queue_align = spdk_max(spdk_align32pow2(queue_len), page_align);
		pqpair->cpl = spdk_zmalloc(queue_len, queue_align, NULL, SPDK_ENV_NUMA_ID_ANY, flags);
		numa_id = spdk_nvme_ctrlr_get_numa_id(ctrlr);
		pqpair->cpl = spdk_zmalloc(queue_len, queue_align, NULL, numa_id, flags);
		if (pqpair->cpl == NULL) {
			SPDK_ERRLOG("alloc qpair_cpl failed\n");
			return -ENOMEM;
+3 −0
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ DEFINE_STUB(nvme_ctrlr_submit_admin_request, int, (struct spdk_nvme_ctrlr *ctrlr

DEFINE_STUB(nvme_ctrlr_proc_get_devhandle, struct spdk_pci_device *,
	    (struct spdk_nvme_ctrlr *ctrlr), NULL);
DEFINE_STUB(spdk_nvme_ctrlr_get_numa_id, int32_t, (struct spdk_nvme_ctrlr *ctrlr),
	    SPDK_ENV_NUMA_ID_ANY);

DEFINE_STUB(spdk_pci_device_unmap_bar, int, (struct spdk_pci_device *dev, uint32_t bar, void *addr),
	    0);
DEFINE_STUB(spdk_pci_device_attach, int, (struct spdk_pci_driver *driver, spdk_pci_enum_cb enum_cb,
+2 −0
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@ DEFINE_STUB_V(nvme_ctrlr_disable, (struct spdk_nvme_ctrlr *ctrlr));
DEFINE_STUB(nvme_ctrlr_disable_poll, int, (struct spdk_nvme_ctrlr *ctrlr), 0);

DEFINE_STUB_V(nvme_transport_ctrlr_disconnect_qpair_done, (struct spdk_nvme_qpair *qpair));
DEFINE_STUB(spdk_nvme_ctrlr_get_numa_id, int32_t, (struct spdk_nvme_ctrlr *ctrlr),
	    SPDK_ENV_NUMA_ID_ANY);

int
nvme_qpair_init(struct spdk_nvme_qpair *qpair, uint16_t id,