From: Ankit Kumar <ankit.kumar@samsung.com>
To: axboe@kernel.dk
Cc: fio@vger.kernel.org, krish.reddy@samsung.com,
joshi.k@samsung.com, anuj20.g@samsung.com,
Ankit Kumar <ankit.kumar@samsung.com>
Subject: [PATCH 0/7] add support for uring passthrough commands
Date: Mon, 23 May 2022 18:40:32 +0530 [thread overview]
Message-ID: <20220523131039.17697-1-ankit.kumar@samsung.com> (raw)
In-Reply-To: CGME20220523131607epcas5p3dbb26f3b6f62fc8bcbe219304d60a7d1@epcas5p3.samsung.com
This patchset adds a new I/O engine (io_uring_cmd), which enables support for
io_uring passthrough commands. The new I/O engine will be built only if its
support is present in the kernel.
https://git.kernel.dk/cgit/linux-block/log/?h=for-next
This engine will use most of the existing helpers from io_uring. The I/O
preparation, completion, file open, file close and post init paths are going
to differ and hence io_uring_cmd will have its own helper for them.
The supported io_uring_cmd options are:
* registerfiles
* sqthread_poll
* sqthread_poll_cpu
* cmd_type (new)
The current uring passthrough support is present only with nvme-ns character
device (/dev/ngXnY). This includes both conventional as well as ZNS devices.
cmd_type provides the flexibility to support different types of passthrough
commands in future.
O_DIRECT flag support is not present with nvme-ns charatcer devices, hence
zbd will check for them only if fio filetype is a block device.
To enable support for nvme passthrough commands, fio will use libnvme to use
NVMe specification structures, enums and helper functions for sending commands.
As nvme specific uring_cmd changes are not yet part of mainline kernel, they
are not integrated with libnvme. Below is the PR for libnvme changes.
https://github.com/linux-nvme/libnvme/pull/362
NOTE: The io_uring_cmd I/O engine changes are present in engines/io_uring.c
These changes are guarded with config flags CONFIG_URING_CMD and
CONFIG_LIBNVME which makes the code a bit messy. This can be neat if
io_uring_cmd is decoupled from engines/io_uring.c
Ankit Kumar (4):
configure: check if uring_cmd support is present
docs: document options for io_uring_cmd I/O engine
zbd: Check for direct flag only if its block device
engines/io_uring: Enable zone device support for io_uring_cmd I/O
engine
Anuj Gupta (3):
io_uring.h: add IORING_SETUP_SQE128 and IORING_SETUP_CQE32
engines/io_uring: add new I/O engine for uring passthrough support
examples: add 2 example job file for io_uring_cmd engine
HOWTO.rst | 17 +-
Makefile | 4 +
configure | 45 +++
engines/io_uring.c | 686 ++++++++++++++++++++++++++++++++++-
examples/uring-cmd-ng.fio | 35 ++
examples/uring-cmd-zoned.fio | 40 ++
file.h | 12 +-
fio.1 | 19 +-
os/linux/io_uring.h | 45 ++-
zbd.c | 4 +-
10 files changed, 886 insertions(+), 21 deletions(-)
create mode 100644 examples/uring-cmd-ng.fio
create mode 100644 examples/uring-cmd-zoned.fio
--
2.17.1
next parent reply other threads:[~2022-05-23 16:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220523131607epcas5p3dbb26f3b6f62fc8bcbe219304d60a7d1@epcas5p3.samsung.com>
2022-05-23 13:10 ` Ankit Kumar [this message]
2022-05-23 13:10 ` [PATCH 1/7] configure: check if uring_cmd support is present Ankit Kumar
2022-05-23 13:10 ` [PATCH 2/7] io_uring.h: add IORING_SETUP_SQE128 and IORING_SETUP_CQE32 Ankit Kumar
2022-05-23 13:10 ` [PATCH 3/7] engines/io_uring: add new I/O engine for uring passthrough support Ankit Kumar
2022-05-23 16:44 ` Jens Axboe
2022-05-23 18:20 ` Ankit Kumar
2022-05-23 13:10 ` [PATCH 4/7] docs: document options for io_uring_cmd I/O engine Ankit Kumar
2022-05-23 13:10 ` [PATCH 5/7] zbd: Check for direct flag only if its block device Ankit Kumar
2022-05-25 10:07 ` Shinichiro Kawasaki
2022-05-25 10:46 ` Ankit Kumar
2022-05-23 13:10 ` [PATCH 6/7] engines/io_uring: Enable zone device support for io_uring_cmd I/O engine Ankit Kumar
2022-05-23 13:10 ` [PATCH 7/7] examples: add 2 example job file for io_uring_cmd engine Ankit Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220523131039.17697-1-ankit.kumar@samsung.com \
--to=ankit.kumar@samsung.com \
--cc=anuj20.g@samsung.com \
--cc=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
--cc=joshi.k@samsung.com \
--cc=krish.reddy@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox