This patch series adds support for NVMe streams. As a byproduct these patches also introduce a new set of data placement options that encompass both FDP and streams. The two technologies are similar enough to be supported by a common set of options. The original FDP options are retained for backward compatibility. Also included are test scripts for FDP and streams. Vincent Fu (9): fio: rename fdp.[c,h] to dataplacement.[c,h] fio: create over-arching data placement option t/nvmept_fdp.py: test script for FDP fio: support NVMe streams options: reject placement IDs larger than the max options: parse placement IDs as unsigned values dataplacement: add a debug print for IOs t/nvmept_streams: test NVMe streams support docs: update for new data placement options HOWTO.rst | 36 +- Makefile | 2 +- cconv.c | 18 +- fdp.c => dataplacement.c | 37 +- dataplacement.h | 37 ++ engines/xnvme.c | 2 +- fdp.h | 29 -- filesetup.c | 4 +- fio.1 | 35 +- init.c | 10 +- io_u.c | 4 +- ioengines.h | 2 +- options.c | 61 +++- server.h | 2 +- t/nvmept_fdp.py | 745 +++++++++++++++++++++++++++++++++++++++ t/nvmept_streams.py | 520 +++++++++++++++++++++++++++ thread_options.h | 15 +- 17 files changed, 1465 insertions(+), 94 deletions(-) rename fdp.c => dataplacement.c (69%) create mode 100644 dataplacement.h delete mode 100644 fdp.h create mode 100755 t/nvmept_fdp.py create mode 100755 t/nvmept_streams.py -- 2.43.0