The following changes since commit 9b699fb150bbed56939d317ffc004b3bf19f098f: Doc: Make note of using bsrange with ':' (2024-03-05 10:54:36 -0500) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to b140fc5e484638a467480e369485b91290288d58: t/nvmept_pi: add support for xNVMe ioengine (2024-03-07 19:36:30 +0000) ---------------------------------------------------------------- Vincent Fu (6): examples: update plot for cmdprio-bssplit examples: add plots for xNVMe examples examples: add fiograph plot for uring-cmd-trim-multi-range examples: add fiograph plots for netio_vsock examples t/nvmept_pi: drop JSON output for error cases t/nvmept_pi: add support for xNVMe ioengine examples/cmdprio-bssplit.png | Bin 45606 -> 134359 bytes examples/netio_vsock.png | Bin 0 -> 46920 bytes examples/netio_vsock_receiver.png | Bin 0 -> 34879 bytes examples/netio_vsock_sender.png | Bin 0 -> 35539 bytes examples/uring-cmd-trim-multi-range.png | Bin 0 -> 67853 bytes examples/xnvme-fdp.png | Bin 0 -> 53284 bytes examples/xnvme-pi.png | Bin 0 -> 76492 bytes t/nvmept_pi.py | 18 +++++++++++------- 8 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 examples/netio_vsock.png create mode 100644 examples/netio_vsock_receiver.png create mode 100644 examples/netio_vsock_sender.png create mode 100644 examples/uring-cmd-trim-multi-range.png create mode 100644 examples/xnvme-fdp.png create mode 100644 examples/xnvme-pi.png --- Diff of recent changes: diff --git a/examples/cmdprio-bssplit.png b/examples/cmdprio-bssplit.png index a0bb3ff4..83a5570b 100644 Binary files a/examples/cmdprio-bssplit.png and b/examples/cmdprio-bssplit.png differ diff --git a/examples/netio_vsock.png b/examples/netio_vsock.png new file mode 100644 index 00000000..01aadde5 Binary files /dev/null and b/examples/netio_vsock.png differ diff --git a/examples/netio_vsock_receiver.png b/examples/netio_vsock_receiver.png new file mode 100644 index 00000000..524a7a1c Binary files /dev/null and b/examples/netio_vsock_receiver.png differ diff --git a/examples/netio_vsock_sender.png b/examples/netio_vsock_sender.png new file mode 100644 index 00000000..75802aaf Binary files /dev/null and b/examples/netio_vsock_sender.png differ diff --git a/examples/uring-cmd-trim-multi-range.png b/examples/uring-cmd-trim-multi-range.png new file mode 100644 index 00000000..c3ffd546 Binary files /dev/null and b/examples/uring-cmd-trim-multi-range.png differ diff --git a/examples/xnvme-fdp.png b/examples/xnvme-fdp.png new file mode 100644 index 00000000..7f802741 Binary files /dev/null and b/examples/xnvme-fdp.png differ diff --git a/examples/xnvme-pi.png b/examples/xnvme-pi.png new file mode 100644 index 00000000..def7e680 Binary files /dev/null and b/examples/xnvme-pi.png differ diff --git a/t/nvmept_pi.py b/t/nvmept_pi.py index 5de77c9d..df7c0b9f 100755 --- a/t/nvmept_pi.py +++ b/t/nvmept_pi.py @@ -43,13 +43,11 @@ class DifDixTest(FioJobCmdTest): fio_args = [ "--name=nvmept_pi", - "--ioengine=io_uring_cmd", - "--cmd_type=nvme", + f"--ioengine={self.fio_opts['ioengine']}", f"--filename={self.fio_opts['filename']}", f"--rw={self.fio_opts['rw']}", f"--bsrange={self.fio_opts['bsrange']}", f"--output={self.filenames['output']}", - f"--output-format={self.fio_opts['output-format']}", f"--md_per_io_size={self.fio_opts['md_per_io_size']}", f"--pi_act={self.fio_opts['pi_act']}", f"--pi_chk={self.fio_opts['pi_chk']}", @@ -58,11 +56,18 @@ class DifDixTest(FioJobCmdTest): ] for opt in ['fixedbufs', 'nonvectored', 'force_async', 'registerfiles', 'sqthread_poll', 'sqthread_poll_cpu', 'hipri', 'nowait', - 'time_based', 'runtime', 'verify', 'io_size', 'offset', 'number_ios']: + 'time_based', 'runtime', 'verify', 'io_size', 'offset', 'number_ios', + 'output-format']: if opt in self.fio_opts: option = f"--{opt}={self.fio_opts[opt]}" fio_args.append(option) + if self.fio_opts['ioengine'] == 'io_uring_cmd': + fio_args.append('--cmd_type=nvme') + elif self.fio_opts['ioengine'] == 'xnvme': + fio_args.append('--thread=1') + fio_args.append('--xnvme_async=io_uring_cmd') + super().setup(fio_args) @@ -622,7 +627,6 @@ TEST_LIST = [ "fio_opts": { "rw": 'read', "number_ios": NUMBER_IOS, - "output-format": "json", "pi_act": 0, "apptag": "0x8888", "apptag_mask": "0x0FFF", @@ -639,7 +643,6 @@ TEST_LIST = [ "fio_opts": { "rw": 'read', "number_ios": NUMBER_IOS, - "output-format": "json", "pi_act": 0, "apptag": "0x8888", "apptag_mask": "0x0FFF", @@ -660,7 +663,6 @@ TEST_LIST = [ "fio_opts": { "rw": 'read', "number_ios": NUMBER_IOS, - "output-format": "json", "pi_act": 0, "apptag": "0x8888", "apptag_mask": "0x0FFF", @@ -689,6 +691,7 @@ def parse_args(): '(e.g., /dev/ng0n1). WARNING: THIS IS A DESTRUCTIVE TEST', required=True) parser.add_argument('-l', '--lbaf', nargs='+', type=int, help='list of lba formats to test') + parser.add_argument('-i', '--ioengine', default='io_uring_cmd') args = parser.parse_args() return args @@ -909,6 +912,7 @@ def main(): for test in TEST_LIST: test['fio_opts']['filename'] = args.dut + test['fio_opts']['ioengine'] = args.ioengine test_env = { 'fio_path': fio_path,