On Mon, Jul 21, 2025 at 01:51:44PM +0000, Bernd Schubert wrote: > On 7/16/25 20:38, Brian Song wrote: > > - ret = io_uring_queue_init(FDMON_IO_URING_ENTRIES, > > &ctx->fdmon_io_uring, 0); > > + ret = io_uring_queue_init(FDMON_IO_URING_ENTRIES, > > + &ctx->fdmon_io_uring, flags); > > if (ret != 0) { > > error_setg_errno(errp, -ret, "Failed to initialize io_uring"); > > return; > > I need test these flags again, might be worthful for qemu as well > > /* These flags should help to increase performance, but actually > * make it a bit slower - reason should get investigated. > */ > if (0) { > /* Has the main slow down effect */ > params.flags |= IORING_SETUP_SINGLE_ISSUER; > > // params.flags |= IORING_SETUP_DEFER_TASKRUN; > params.flags |= IORING_SETUP_TASKRUN_FLAG; > > /* Second main effect to make it slower */ > params.flags |= IORING_SETUP_COOP_TASKRUN; > }
I measured the following using fio bs=4k in a 4 vCPU guest with 1 IOThread using a virtio-blk disk backed by a local NVMe drive: IOPS IOPS Benchmark SINGLE_ISSUER SINGLE_ISSUER|COOP_TASKRUN|TASKRUN_FLAG randread iodepth=1 54,045 (+1.2%) 54,189 (+1.5%) randread iodepth=64 318,135 (+0.1%) 315,632 (-0.68%) randwrite iodepth=1 141,918 (-0.44%) 143,337 (+0.55%) randwrite iodepth=64 323,948 (-0.015%) 322,755 (-0.38%) The differences are so small that I'd rather not merge the code changes. I will post an RFC series just to archive the patches in case they are needed again in the future. You can find detailed benchmarking results here including the fio output, fio command-line, and guest libvirt domain XML: https://gitlab.com/stefanha/virt-playbooks/-/tree/io_uring-flags/notebook/fio-output https://gitlab.com/stefanha/virt-playbooks/-/blob/io_uring-flags/files/fio.sh https://gitlab.com/stefanha/virt-playbooks/-/blob/io_uring-flags/files/test.xml.j2 Stefan
signature.asc
Description: PGP signature