From: Ankit Kumar Date: Wed, 16 Aug 2023 09:46:16 +0000 (+0530) Subject: examples: add example and fiograph for protection information options X-Git-Tag: fio-3.36~18 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b311162c37a2867873e1222ce6b5f38c88be4d80;p=fio.git examples: add example and fiograph for protection information options Add missing io_uring_cmd ioengine options to fiograph config. Add two example job files for the protection information options. These include one for DIF i.e. extended LBA data size, and the other for DIX i.e. separate metadata buffer case. Add the corresponding fiograph diagram for these. Signed-off-by: Ankit Kumar Link: https://lore.kernel.org/r/20230816094616.132240-1-ankit.kumar@samsung.com Signed-off-by: Vincent Fu --- 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