The following changes since commit 6795954bde09c8697e0accb865b4f438d62c601f: engines/io_uring: fix leak of 'ld' in error path (2023-08-14 19:59:20 -0600) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to b311162c37a2867873e1222ce6b5f38c88be4d80: examples: add example and fiograph for protection information options (2023-08-16 09:34:46 -0400) ---------------------------------------------------------------- Ankit Kumar (1): examples: add example and fiograph for protection information options examples/uring-cmd-pi-ext.fio | 31 +++++++++++++++++++++++++++++++ examples/uring-cmd-pi-ext.png | Bin 0 -> 81014 bytes examples/uring-cmd-pi-sb.fio | 32 ++++++++++++++++++++++++++++++++ examples/uring-cmd-pi-sb.png | Bin 0 -> 87357 bytes tools/fiograph/fiograph.conf | 2 +- 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 examples/uring-cmd-pi-ext.fio create mode 100644 examples/uring-cmd-pi-ext.png create mode 100644 examples/uring-cmd-pi-sb.fio create mode 100644 examples/uring-cmd-pi-sb.png --- Diff of recent changes: diff --git a/examples/uring-cmd-pi-ext.fio b/examples/uring-cmd-pi-ext.fio new file mode 100644 index 00000000..e22ec062 --- /dev/null +++ b/examples/uring-cmd-pi-ext.fio @@ -0,0 +1,31 @@ +# Protection information test with io_uring_cmd I/O engine for nvme-ns generic +# character device. +# +# This requires nvme device to be formatted with extended LBA data size and +# protection information enabled. This can be done with nvme-cli utility. +# Replace bs below with the correct extended LBA size. +# +# First we sequentially write to the device, without protection information +# action being set. FIO will generate and send necessary protection +# information data as per the protection information check option. Later on we +# sequentially read and verify the device returned protection information data. +# +[global] +filename=/dev/ng0n1 +ioengine=io_uring_cmd +cmd_type=nvme +size=1G +iodepth=32 +bs=4160 +pi_act=0 +pi_chk=GUARD,APPTAG,REFTAG +apptag=0x0888 +apptag_mask=0xFFFF +thread=1 +stonewall=1 + +[write] +rw=write + +[read] +rw=read diff --git a/examples/uring-cmd-pi-ext.png b/examples/uring-cmd-pi-ext.png new file mode 100644 index 00000000..a102fc1a Binary files /dev/null and b/examples/uring-cmd-pi-ext.png differ diff --git a/examples/uring-cmd-pi-sb.fio b/examples/uring-cmd-pi-sb.fio new file mode 100644 index 00000000..b201a7ce --- /dev/null +++ b/examples/uring-cmd-pi-sb.fio @@ -0,0 +1,32 @@ +# Protection information test with io_uring_cmd I/O engine for nvme-ns generic +# character device. +# +# This requires nvme device to be formatted with separate metadata buffer and +# protection information enabled. This can be done with nvme-cli utility. +# Replace md_per_io_size as per the required metadata buffer size for each IO. +# +# First we sequentially write to the device, without protection information +# action being set. FIO will generate and send necessary protection +# information data as per the protection information check option. Later on we +# sequentially read and verify the device returned protection information data. +# +[global] +filename=/dev/ng0n1 +ioengine=io_uring_cmd +cmd_type=nvme +size=1G +iodepth=32 +bs=4096 +md_per_io_size=64 +pi_act=0 +pi_chk=GUARD,APPTAG,REFTAG +apptag=0x0888 +apptag_mask=0xFFFF +thread=1 +stonewall=1 + +[write] +rw=write + +[read] +rw=read diff --git a/examples/uring-cmd-pi-sb.png b/examples/uring-cmd-pi-sb.png new file mode 100644 index 00000000..dcdda8cd Binary files /dev/null and b/examples/uring-cmd-pi-sb.png differ diff --git a/tools/fiograph/fiograph.conf b/tools/fiograph/fiograph.conf index 91c5fcfe..123c39ae 100644 --- a/tools/fiograph/fiograph.conf +++ b/tools/fiograph/fiograph.conf @@ -54,7 +54,7 @@ specific_options=ime_psync ime_psyncv specific_options=hipri cmdprio_percentage cmdprio_class cmdprio cmdprio_bssplit fixedbufs registerfiles sqthread_poll sqthread_poll_cpu nonvectored uncached nowait force_async [ioengine_io_uring_cmd] -specific_options=hipri cmdprio_percentage cmdprio_class cmdprio cmdprio_bssplit fixedbufs registerfiles sqthread_poll sqthread_poll_cpu nonvectored uncached nowait force_async cmd_type +specific_options=hipri cmdprio_percentage cmdprio_class cmdprio cmdprio_bssplit fixedbufs registerfiles sqthread_poll sqthread_poll_cpu nonvectored uncached nowait force_async cmd_type md_per_io_size pi_act pi_chk apptag apptag_mask [ioengine_libaio] specific_options=userspace_reap cmdprio_percentage cmdprio_class cmdprio cmdprio_bssplit nowait