diff --git a/examples/uring-cmd-pi-ext.fio b/examples/uring-cmd-pi-ext.fio new file mode 100644 index 000000000..e22ec0624 --- /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 000000000..a102fc1a7 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 000000000..b201a7ce0 --- /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 000000000..dcdda8cda 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 91c5fcfee..123c39ae7 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