On Wed, May 03, 2023 at 11:06:57AM +0200, Andreas Hindborg wrote: > From: Andreas Hindborg <a.hindborg@xxxxxxxxxxx> > (cut) > > For each measurement the drivers are loaded, a drive is configured with memory > backing and a size of 4 GiB. C null_blk is configured to match the implemented > modes of the Rust driver: `blocksize` is set to 4 KiB, `completion_nsec` to 0, > `irqmode` to 0 (IRQ_NONE), `queue_mode` to 2 (MQ), `hw_queue_depth` to 256 and > `memory_backed` to 1. For both the drivers, the queue scheduler is set to > `none`. These measurements are made using 30 second runs of `fio` with the > `PSYNC` IO engine with workers pinned to separate CPU cores. The measurements > are done inside a virtual machine (qemu/kvm) on an Intel Alder Lake workstation > (i5-12600). Hello Andreas, I'm curious why you used psync ioengine for the benchmarks. As psync is a sync ioengine, it means queue depth == 1. Wouldn't it have been more interesting to see an async ioengine, together with different queue depths? You might want to explain your table a bit more. It might be nice to see IOPS and average latencies. As an example of a table that I find easier to interpret, see e.g. the table on page 29 in the SPDK performance report: https://ci.spdk.io/download/performance-reports/SPDK_nvme_bdev_perf_report_2301.pdf Kind regards, Niklas