From 450d19d1175d473cabbcbce02870f479755fb637 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Mon, 10 Feb 2020 14:28:36 -0700 Subject: [PATCH] nvme/cuse: Don't allocate data buffers from CMB for cuse commands These data buffers can't later be freed and need to be carefully managed by the host. Also, this is very likely slower. Change-Id: I0d205c0c7136e0aa972e927361bd88e765d218c6 Signed-off-by: Ben Walker Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/784 Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto --- lib/nvme/nvme_cuse.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/lib/nvme/nvme_cuse.c b/lib/nvme/nvme_cuse.c index 9e3ae0227..5067356c2 100644 --- a/lib/nvme/nvme_cuse.c +++ b/lib/nvme/nvme_cuse.c @@ -313,11 +313,8 @@ cuse_nvme_submit_io_write(fuse_req_t req, int cmd, void *arg, ctx->lba_count = user_io->nblocks + 1; ctx->data_len = ctx->lba_count * block_size; - ctx->data = spdk_nvme_ctrlr_alloc_cmb_io_buffer(cuse_device->ctrlr, ctx->data_len); - if (ctx->data == NULL) { - ctx->data = spdk_zmalloc(ctx->data_len, 0x1000, NULL, SPDK_ENV_SOCKET_ID_ANY, - SPDK_MALLOC_DMA); - } + ctx->data = spdk_zmalloc(ctx->data_len, 0x1000, NULL, SPDK_ENV_SOCKET_ID_ANY, + SPDK_MALLOC_DMA); if (ctx->data == NULL) { SPDK_ERRLOG("Write buffer allocation failed\n"); fuse_reply_err(ctx->req, ENOMEM); @@ -397,11 +394,8 @@ cuse_nvme_submit_io_read(fuse_req_t req, int cmd, void *arg, block_size = spdk_nvme_ns_get_sector_size(ns); ctx->data_len = ctx->lba_count * block_size; - ctx->data = spdk_nvme_ctrlr_alloc_cmb_io_buffer(cuse_device->ctrlr, ctx->data_len); - if (ctx->data == NULL) { - ctx->data = spdk_zmalloc(ctx->data_len, 0x1000, NULL, SPDK_ENV_SOCKET_ID_ANY, - SPDK_MALLOC_DMA); - } + ctx->data = spdk_zmalloc(ctx->data_len, 0x1000, NULL, SPDK_ENV_SOCKET_ID_ANY, + SPDK_MALLOC_DMA); if (ctx->data == NULL) { SPDK_ERRLOG("Read buffer allocation failed\n"); fuse_reply_err(ctx->req, ENOMEM);