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 <benjamin.walker@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/784 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
5ac51a3214
commit
450d19d117
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user