diff options
author | Ankit Kumar <ankit.kumar@samsung.com> | 2024-02-13 21:03:11 +0530 |
---|---|---|
committer | Vincent Fu <vincent.fu@samsung.com> | 2024-02-13 14:24:59 -0500 |
commit | 7f6a38693b8a695f5b6d4789341c1946f77ace24 (patch) | |
tree | d3214a36ddc15a9ff1b9fb9f64d7bceb9aa922c7 | |
parent | 119b7ce8e53226aa889cc243c08ec4892a5ec63b (diff) | |
download | fio-7f6a38693b8a695f5b6d4789341c1946f77ace24.tar.gz |
engines/xnvme: allocate iovecs only if vectored I/O is enabled
Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20240213153315.134202-2-ankit.kumar@samsung.com
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
-rw-r--r-- | engines/xnvme.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/engines/xnvme.c b/engines/xnvme.c index 2a0b3520b..88bbba4e2 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; |