Kindly ignore this, will send incremental change once the existing series from Keith gets merged. Regards Ankit Kumar On Fri, Feb 10, 2023 at 10:19 AM Ankit Kumar <ankit.kumar@xxxxxxxxxxx> wrote: > > 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 >