From 7f6a38693b8a695f5b6d4789341c1946f77ace24 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Tue, 13 Feb 2024 21:03:11 +0530 Subject: [PATCH] engines/xnvme: allocate iovecs only if vectored I/O is enabled Signed-off-by: Ankit Kumar Reviewed-by: Jens Axboe Link: https://lore.kernel.org/r/20240213153315.134202-2-ankit.kumar@samsung.com Signed-off-by: Vincent Fu --- engines/xnvme.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/engines/xnvme.c b/engines/xnvme.c index 2a0b3520..88bbba4e 100644 --- a/engines/xnvme.c +++ b/engines/xnvme.c @@ -325,6 +325,7 @@ failure: static int xnvme_fioe_init(struct thread_data *td) { struct xnvme_fioe_data *xd = NULL; + struct xnvme_fioe_options *o = td->eo; struct fio_file *f; unsigned int i; @@ -347,12 +348,14 @@ static int xnvme_fioe_init(struct thread_data *td) return 1; } - xd->iovec = calloc(td->o.iodepth, sizeof(*xd->iovec)); - if (!xd->iovec) { - free(xd->iocq); - free(xd); - log_err("ioeng->init(): !calloc(xd->iovec), err(%d)\n", errno); - return 1; + if (o->xnvme_iovec) { + xd->iovec = calloc(td->o.iodepth, sizeof(*xd->iovec)); + if (!xd->iovec) { + free(xd->iocq); + free(xd); + log_err("ioeng->init(): !calloc(xd->iovec), err(%d)\n", errno); + return 1; + } } xd->prev = -1; -- 2.25.1