fio: add fdp support for io_uring_cmd nvme engine
authorKeith Busch <kbusch@kernel.org>
Mon, 27 Feb 2023 15:51:34 +0000 (07:51 -0800)
committerVincent Fu <vincent.fu@samsung.com>
Tue, 28 Feb 2023 14:27:14 +0000 (09:27 -0500)
commita7e8aae0220458e3d3bfa12c04835a63bbf152e2
treec3928a1b98a9ef3daa85e90bec2a011c7478b754
parentd08dbc03fe8b5ca5bc123746e2a688168da67a5a
fio: add fdp support for io_uring_cmd nvme engine

Add support for NVMe TP4146 Flexible Data Placemen, allowing placement
identifiers in write commands. The user can enabled this with the new
"fdp=1" parameter for fio's io_uring_cmd ioengine. By default, the fio
jobs will cycle through all the namespace's available placement
identifiers for write commands. The user can limit which placement
identifiers can be used with additional parameter, "fdp_pli=<list,>",
which can be used to separate write intensive jobs from less intensive
ones.

Setting up your namespace for FDP is outside the scope of 'fio', so this
assumes the namespace is already properly configured for the mode.

Link: https://lore.kernel.org/fio/CAKi7+wfX-eaUD5pky5cJ824uCzsQ4sPYMZdp3AuCUZOA1TQrYw@mail.gmail.com/T/#m056018eb07229bed00d4e589f9760b2a2aa009fc
Based-on-a-patch-by: Ankit Kumar <ankit.kumar@samsung.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
[Vincent: fold in sfree fix from Ankit]
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
18 files changed:
HOWTO.rst
Makefile
cconv.c
engines/io_uring.c
engines/nvme.c
engines/nvme.h
examples/uring-cmd-fdp.fio [new file with mode: 0644]
fdp.c [new file with mode: 0644]
fdp.h [new file with mode: 0644]
file.h
filesetup.c
fio.1
io_u.c
io_u.h
ioengines.h
options.c
server.h
thread_options.h