The following changes since commit 90a0fbc83c59ddfacc3e90dcb7721ff322bfe26f: Merge branch 'coverity-fix' of https://github.com/ankit-sam/fio (2024-01-25 10:20:10 -0700) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to 625b155dcd3d56595ced60806e091126446c1e08: examples: cmdprio_bssplit: add CDL example (2024-01-27 11:18:57 -0500) ---------------------------------------------------------------- Niklas Cassel (2): examples: cmdprio_bssplit: s,IO,I/O, examples: cmdprio_bssplit: add CDL example examples/cmdprio-bssplit.fio | 47 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) --- Diff of recent changes: diff --git a/examples/cmdprio-bssplit.fio b/examples/cmdprio-bssplit.fio index f3b2fac0..ee202d74 100644 --- a/examples/cmdprio-bssplit.fio +++ b/examples/cmdprio-bssplit.fio @@ -12,9 +12,9 @@ iodepth=16 ; use the same prio class and prio level defined by the cmdprio_class ; and cmdprio options. [cmdprio] -; 40% of read IOs are 64kB and 60% are 1MB. 100% of writes are 1MB. +; 40% of read I/Os are 64kB and 60% are 1MB. 100% of writes are 1MB. ; 100% of the 64kB reads are executed with prio class 1 and prio level 0. -; All other IOs are executed without a priority set. +; All other I/Os are executed without a priority set. bssplit=64k/40:1024k/60,1024k/100 cmdprio_bssplit=64k/100:1024k/0,1024k/0 cmdprio_class=1 @@ -23,22 +23,57 @@ cmdprio=0 ; Advanced cmdprio_bssplit format. Each non-zero percentage entry can ; use a different prio class and prio level (appended to each entry). [cmdprio-adv] -; 40% of read IOs are 64kB and 60% are 1MB. 100% of writes are 1MB. +; 40% of read I/Os are 64kB and 60% are 1MB. 100% of writes are 1MB. ; 25% of the 64kB reads are executed with prio class 1 and prio level 1, ; 75% of the 64kB reads are executed with prio class 3 and prio level 2. -; All other IOs are executed without a priority set. +; All other I/Os are executed without a priority set. stonewall bssplit=64k/40:1024k/60,1024k/100 cmdprio_bssplit=64k/25/1/1:64k/75/3/2:1024k/0,1024k/0 ; Identical to the previous example, but with a default priority defined. [cmdprio-adv-def] -; 40% of read IOs are 64kB and 60% are 1MB. 100% of writes are 1MB. +; 40% of read I/Os are 64kB and 60% are 1MB. 100% of writes are 1MB. ; 25% of the 64kB reads are executed with prio class 1 and prio level 1, ; 75% of the 64kB reads are executed with prio class 3 and prio level 2. -; All other IOs are executed with prio class 2 and prio level 7. +; All other I/Os are executed with prio class 2 and prio level 7. stonewall prioclass=2 prio=7 bssplit=64k/40:1024k/60,1024k/100 cmdprio_bssplit=64k/25/1/1:64k/75/3/2:1024k/0,1024k/0 + +; Example of how to use cmdprio_bssplit with Command Duration Limits (CDL) +; using I/O priority hints. The drive has to support CDL, and CDL has to be +; enabled in sysfs, otherwise the hints will not be sent down to the drive. +[cmdprio-hints] +; 40% of the I/Os are 1MB reads and 60% of the I/Os are 2MB reads. +; +; 10% of the 1MB reads are executed with prio class 2 (Best Effort), +; prio level 0, and prio hint 1. Prio hint 1 means CDL descriptor 1. +; Since 40% of read I/Os are 1MB, and 10% of the 1MB I/Os use CDL desc 1, +; this means that 4% of all the issued I/O will use this configuration. +; +; 30% of the 1MB reads are executed with prio class 2 (Best Effort), +; prio level 0, and prio hint 2. Prio hint 2 means CDL descriptor 2. +; Since 40% of read I/Os are 1MB, and 30% of the 1MB I/Os use CDL desc 2, +; this means that 12% of all the issued I/O will use this configuration. +; +; 60% of the 1MB reads are executed with prio class 2 (Best Effort), +; prio level 0, and prio hint 0. Prio hint 0 means no hint. +; Since 40% of read I/Os are 1MB, and 60% of the 1MB I/Os use no hint, +; this means that 24% of all the issued I/O will use this configuration. +; +; 10% of the 2MB reads are executed with prio class 2 (Best Effort), +; prio level 0, and prio hint 3. Prio hint 3 means CDL descriptor 3. +; Since 60% of read I/Os are 2MB, and 10% of the 2MB I/Os use CDL desc 3, +; this means that 6% of all the issued I/O will use this configuration. +; +; 90% of the 2MB reads are executed with prio class 2 (Best Effort), +; prio level 0, and prio hint 0. Prio hint 0 means no hint. +; Since 60% of read I/Os are 2MB, and 90% of the 2MB I/Os use no hint, +; this means that 54% of all the issued I/O will use this configuration. +stonewall +rw=randread +bssplit=1M/40:2M/60 +cmdprio_bssplit=1M/10/2/0/1:1M/30/2/0/2:1M/60/2/0/0:2M/10/2/0/3:2M/90/2/0/0