nvmf: remove bb pools and replace with rte_malloc
The mempool functionality is never used at runtime - all bounce buffers were immediately assigned to a rx_desc. Change-Id: Ie2195059858e34b30b07e104739f046c13abc335 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
31d2a116c8
commit
f0242ce745
@ -108,36 +108,6 @@ spdk_nvmf_initialize_pools(struct spdk_nvmf_globals *spdk_nvmf)
|
|||||||
request_mempool,
|
request_mempool,
|
||||||
(unsigned int)(SPDK_NVMF_DESC_POOL_SIZE(spdk_nvmf) * spdk_nvme_request_size()));
|
(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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,8 +129,6 @@ spdk_nvmf_check_pools(void)
|
|||||||
int rc = 0;
|
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->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) {
|
if (rc == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -114,8 +114,6 @@ struct spdk_nvmf_globals {
|
|||||||
int MaxRecvDataSegmentLength;
|
int MaxRecvDataSegmentLength;
|
||||||
|
|
||||||
struct rte_mempool *nvme_request_pool;
|
struct rte_mempool *nvme_request_pool;
|
||||||
struct rte_mempool *bb_small_pool;
|
|
||||||
struct rte_mempool *bb_large_pool;
|
|
||||||
uint16_t sin_port;
|
uint16_t sin_port;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,7 +43,6 @@
|
|||||||
#include <rte_cycles.h>
|
#include <rte_cycles.h>
|
||||||
#include <rte_timer.h>
|
#include <rte_timer.h>
|
||||||
#include <rte_malloc.h>
|
#include <rte_malloc.h>
|
||||||
#include <rte_mempool.h>
|
|
||||||
|
|
||||||
#include "conn.h"
|
#include "conn.h"
|
||||||
#include "rdma.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");
|
SPDK_ERRLOG("Unable to de-register rx bb mr\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conn->type == CONN_TYPE_AQ) {
|
rte_free(tmp_rx->bb);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = rdma_dereg_mr(tmp_rx->msg_buf_mr);
|
rc = rdma_dereg_mr(tmp_rx->msg_buf_mr);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
@ -941,20 +936,15 @@ alloc_qp_rx_desc(struct spdk_nvmf_conn *conn)
|
|||||||
data.
|
data.
|
||||||
*/
|
*/
|
||||||
if (conn->type == CONN_TYPE_AQ) {
|
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;
|
rx_desc->bb_len = SMALL_BB_MAX_SIZE;
|
||||||
} else { // for IO queues
|
} 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_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,
|
rx_desc->bb_mr = rdma_reg_read(conn->rdma.cm_id,
|
||||||
(void *)rx_desc->bb,
|
(void *)rx_desc->bb,
|
||||||
rx_desc->bb_len);
|
rx_desc->bb_len);
|
||||||
@ -983,13 +973,7 @@ fail:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rx_desc->bb) {
|
rte_free(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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rx_desc->msg_buf_mr) {
|
if (rx_desc->msg_buf_mr) {
|
||||||
rc = rdma_dereg_mr(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");
|
SPDK_ERRLOG("Unable to de-register rx bb mr\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conn->type == CONN_TYPE_AQ) {
|
rte_free(tmp->bb);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = rdma_dereg_mr(tmp->msg_buf_mr);
|
rc = rdma_dereg_mr(tmp->msg_buf_mr);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
|
Loading…
Reference in New Issue
Block a user