NVMe TP4146 creates a new feature called Flexible Data Placement. This feature allows a host to tell the device how to group write data through the use of "Placement Identifiers" in write commands. Add support for using 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 intenstive 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. v2 -> v1 1. Enhance fdp support check. Check if get feature fdp has fdp configuration enabled. Use the fdp config index to determine the reclaim unit size. This will be handy when we update the fdp backend to write in different fashion. 2. fetch ruhs info, can even work for more than 1024 reclaim unit handle descripotors. We just need to query io mangement recv command twice. 3. Add the missing fdp backend. 4. Update man page for the new options. Note: I have purposefully left out Signed-off-by tag (Keith's and mine). Feedback is appreciated. Ankit Kumar (3): fio/fdp: add fdp support to fio engines/io_uring: add fdp support for io_uring_cmd engine example: add fdp example for uring_cmd engine HOWTO.rst | 14 +++ Makefile | 2 +- engines/io_uring.c | 15 +++ engines/nvme.c | 224 ++++++++++++++++++++++++++++++++++++- engines/nvme.h | 74 ++++++++++++ examples/uring-cmd-fdp.fio | 37 ++++++ fdp.c | 219 ++++++++++++++++++++++++++++++++++++ fdp.h | 25 +++++ file.h | 3 + filesetup.c | 7 ++ fio.1 | 12 ++ fio.h | 2 + init.c | 1 + io_u.c | 3 + io_u.h | 3 + ioengines.h | 7 +- options.c | 49 ++++++++ thread_options.h | 8 ++ 18 files changed, 702 insertions(+), 3 deletions(-) create mode 100644 examples/uring-cmd-fdp.fio create mode 100644 fdp.c create mode 100644 fdp.h -- 2.17.1