diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index 8808e9342..ee1870b70 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -108,36 +108,6 @@ spdk_nvmf_initialize_pools(struct spdk_nvmf_globals *spdk_nvmf) request_mempool, (unsigned int)(SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf) * spdk_nvme_request_size())); - spdk_nvmf->bb_small_pool = - rte_mempool_create("bb_small_pool", - SPDK_NVMF_ADMINQ_POOL_SIZE(spdk_nvmf), - SMALL_BB_MAX_SIZE, - 128, 0, - NULL, NULL, NULL, NULL, - SOCKET_ID_ANY, 0); - if (!spdk_nvmf->bb_small_pool) { - SPDK_ERRLOG("create bb small pool failed\n"); - return -1; - } - SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Small data buffer pool %p, size 0x%x bytes\n", - spdk_nvmf->bb_small_pool, - (SPDK_NVMF_ADMINQ_POOL_SIZE(spdk_nvmf) * SMALL_BB_MAX_SIZE)); - - spdk_nvmf->bb_large_pool = - rte_mempool_create("bb_large_pool", - SPDK_NVMF_IOQ_POOL_SIZE(spdk_nvmf), - LARGE_BB_MAX_SIZE, - 32, 0, - NULL, NULL, NULL, NULL, - SOCKET_ID_ANY, 0); - if (!spdk_nvmf->bb_large_pool) { - SPDK_ERRLOG("create bb large pool failed\n"); - return -1; - } - SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Large data buffer pool %p, size 0x%x bytes\n", - spdk_nvmf->bb_large_pool, - (SPDK_NVMF_IOQ_POOL_SIZE(spdk_nvmf) * LARGE_BB_MAX_SIZE)); - return 0; } @@ -159,8 +129,6 @@ spdk_nvmf_check_pools(void) int rc = 0; rc += spdk_nvmf_check_pool(spdk_nvmf->nvme_request_pool, SPDK_NVMF_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)); if (rc == 0) { return 0; diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index cb7e9c89d..099e71e30 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -114,8 +114,6 @@ struct spdk_nvmf_globals { int MaxRecvDataSegmentLength; struct rte_mempool *nvme_request_pool; - struct rte_mempool *bb_small_pool; - struct rte_mempool *bb_large_pool; uint16_t sin_port; }; diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index 6c1508315..38b15563a 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -43,7 +43,6 @@ #include #include #include -#include #include "conn.h" #include "rdma.h" @@ -176,11 +175,7 @@ free_qp_desc(struct spdk_nvmf_conn *conn) SPDK_ERRLOG("Unable to de-register rx bb mr\n"); } - if (conn->type == CONN_TYPE_AQ) { - rte_mempool_put(g_nvmf_tgt.bb_small_pool, (void *)tmp_rx->bb); - } else { - rte_mempool_put(g_nvmf_tgt.bb_large_pool, (void *)tmp_rx->bb); - } + rte_free(tmp_rx->bb); rc = rdma_dereg_mr(tmp_rx->msg_buf_mr); if (rc) { @@ -941,20 +936,15 @@ alloc_qp_rx_desc(struct spdk_nvmf_conn *conn) data. */ if (conn->type == CONN_TYPE_AQ) { - rc = rte_mempool_get(g_nvmf_tgt.bb_small_pool, (void **)&rx_desc->bb); - if ((rc < 0) || !rx_desc->bb) { - SPDK_ERRLOG("Unable to get small bb object\n"); - goto fail; - } rx_desc->bb_len = SMALL_BB_MAX_SIZE; } else { // for IO queues - rc = rte_mempool_get(g_nvmf_tgt.bb_large_pool, (void **)&rx_desc->bb); - if ((rc < 0) || !rx_desc->bb) { - SPDK_ERRLOG("Unable to get large bb object\n"); - goto fail; - } rx_desc->bb_len = LARGE_BB_MAX_SIZE; } + rx_desc->bb = rte_zmalloc("nvmf_bb", rx_desc->bb_len, 0); + if (!rx_desc->bb) { + SPDK_ERRLOG("Unable to get %u-byte bounce buffer\n", rx_desc->bb_len); + goto fail; + } rx_desc->bb_mr = rdma_reg_read(conn->rdma.cm_id, (void *)rx_desc->bb, rx_desc->bb_len); @@ -983,13 +973,7 @@ fail: } } - if (rx_desc->bb) { - if (conn->type == CONN_TYPE_AQ) { - rte_mempool_put(g_nvmf_tgt.bb_small_pool, (void *)rx_desc->bb); - } else { - rte_mempool_put(g_nvmf_tgt.bb_large_pool, (void *)rx_desc->bb); - } - } + rte_free(rx_desc->bb); if (rx_desc->msg_buf_mr) { rc = rdma_dereg_mr(rx_desc->msg_buf_mr); @@ -1009,11 +993,7 @@ fail: SPDK_ERRLOG("Unable to de-register rx bb mr\n"); } - if (conn->type == CONN_TYPE_AQ) { - rte_mempool_put(g_nvmf_tgt.bb_small_pool, (void *)tmp->bb); - } else { - rte_mempool_put(g_nvmf_tgt.bb_large_pool, (void *)tmp->bb); - } + rte_free(tmp->bb); rc = rdma_dereg_mr(tmp->msg_buf_mr); if (rc) {