nvmf: double tx_desc_pool count with doubled cq_depth per connection

Change-Id: I7139ddfacedc1ee7f324a1577730b08260035b83
Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
GangCao 2016-06-06 18:55:21 -04:00 committed by Daniel Verkamp
parent 2c43473adc
commit b1b7bebdc7

View File

@ -62,6 +62,9 @@ SPDK_LOG_REGISTER_TRACE_FLAG("nvmf", SPDK_TRACE_NVMF)
*
* SPDK_NVMF_DESC_POOL_SIZE: The total number of RDMA descriptors
* needed for all possible admin and I/O queue requests.
*
* SPDK_NVMF_TX_DESC_POOL_SIZE: The total number of RDMA descriptors
* needed for all possible admin and I/O queue tx requests.
*/
#define SPDK_NVMF_ADMINQ_POOL_SIZE(spdk) (MAX_SUBSYSTEMS * \
(spdk->MaxSessionsPerSubsystem) * \
@ -75,6 +78,10 @@ SPDK_LOG_REGISTER_TRACE_FLAG("nvmf", SPDK_TRACE_NVMF)
#define SPDK_NVMF_DESC_POOL_SIZE(spdk) (SPDK_NVMF_ADMINQ_POOL_SIZE(spdk) + \
SPDK_NVMF_IOQ_POOL_SIZE(spdk))
/* Per each connection, cq depth is double of sq depth. Double the memory accordingly. */
#define SPDK_NVMF_TX_DESC_POOL_SIZE(spdk) ((SPDK_NVMF_ADMINQ_POOL_SIZE(spdk) + \
SPDK_NVMF_IOQ_POOL_SIZE(spdk)) * 2)
#define SPDK_NVMF_MAX_CONNECTIONS(spdk) (MAX_SUBSYSTEMS * \
((spdk)->MaxSessionsPerSubsystem) * \
((spdk)->MaxConnectionsPerSession))
@ -152,7 +159,7 @@ spdk_nvmf_initialize_pools(struct spdk_nvmf_globals *spdk_nvmf)
spdk_nvmf->tx_desc_pool =
rte_mempool_create("RDMA TX Desc Pool",
SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf),
SPDK_NVMF_TX_DESC_POOL_SIZE(spdk_nvmf),
sizeof(struct nvme_qp_tx_desc),
0, 0,
NULL, NULL, NULL, NULL,
@ -163,7 +170,7 @@ spdk_nvmf_initialize_pools(struct spdk_nvmf_globals *spdk_nvmf)
}
SPDK_TRACELOG(SPDK_TRACE_DEBUG, "RDMA Tx descriptor pool %p, size 0x%lx bytes\n",
spdk_nvmf->tx_desc_pool,
(SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf) * sizeof(struct nvme_qp_tx_desc)));
(SPDK_NVMF_TX_DESC_POOL_SIZE(spdk_nvmf) * sizeof(struct nvme_qp_tx_desc)));
return 0;
}
@ -186,7 +193,7 @@ spdk_nvmf_check_pools(struct spdk_nvmf_globals *spdk_nvmf)
rc += spdk_nvmf_check_pool(spdk_nvmf->nvme_request_pool, SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf));
rc += spdk_nvmf_check_pool(spdk_nvmf->rx_desc_pool, SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf));
rc += spdk_nvmf_check_pool(spdk_nvmf->tx_desc_pool, SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf));
rc += spdk_nvmf_check_pool(spdk_nvmf->tx_desc_pool, SPDK_NVMF_TX_DESC_POOL_SIZE(spdk_nvmf));
rc += spdk_nvmf_check_pool(spdk_nvmf->bb_small_pool, SPDK_NVMF_ADMINQ_POOL_SIZE(spdk_nvmf));
rc += spdk_nvmf_check_pool(spdk_nvmf->bb_large_pool, SPDK_NVMF_IOQ_POOL_SIZE(spdk_nvmf));