From 7116c1f4fed83834c78d02ae031c3f07e64d34e3 Mon Sep 17 00:00:00 2001 From: Minwoo Im Date: Sat, 22 Jun 2024 20:35:02 +0900 Subject: [PATCH] io_uring: Add support FLUSH command Add support for --fsync and --fdatasync in io_uring_cmd ioengine to enable FLUSH commands just like libaio or io_uring ioengines. If --fsync or --fdatasync is given N, FLUSH command will be issued as per N write commands. Signed-off-by: Minwoo Im --- engines/nvme.c | 5 +++++ engines/nvme.h | 1 + 2 files changed, 6 insertions(+) diff --git a/engines/nvme.c b/engines/nvme.c index 72934c8b..33d87477 100644 --- a/engines/nvme.c +++ b/engines/nvme.c @@ -381,6 +381,11 @@ int fio_nvme_uring_cmd_prep(struct nvme_uring_cmd *cmd, struct io_u *io_u, case DDIR_TRIM: fio_nvme_uring_cmd_trim_prep(cmd, io_u, dsm); return 0; + case DDIR_SYNC: + case DDIR_DATASYNC: + cmd->opcode = nvme_cmd_flush; + cmd->nsid = data->nsid; + return 0; default: return -ENOTSUP; } diff --git a/engines/nvme.h b/engines/nvme.h index bc2370b8..b5fef2fb 100644 --- a/engines/nvme.h +++ b/engines/nvme.h @@ -73,6 +73,7 @@ enum nvme_admin_opcode { }; enum nvme_io_opcode { + nvme_cmd_flush = 0x00, nvme_cmd_write = 0x01, nvme_cmd_read = 0x02, nvme_cmd_write_uncor = 0x04, -- 2.25.1