[PATCH v2 0/3] fdp support in fio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux