engines/io_uring: set COOP_TASKRUN for ring setup
authorJens Axboe <axboe@kernel.dk>
Wed, 31 Aug 2022 19:45:32 +0000 (13:45 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 31 Aug 2022 19:45:32 +0000 (13:45 -0600)
commit4d22c1037dafdac3d9bf30a3fb39d88f4391e41a
tree5007a50a8cfc9f85359e20853d21633fa6d73306
parentc9be6f0007ab79e3f83952c650af8e7a0c324953
engines/io_uring: set COOP_TASKRUN for ring setup

If available, this will generally improve performance quite a bit.
Fio can easily use it, we just need to set the flag.
IORING_SETUP_COOP_TASKRUN tells the kernel that the application doesn't
need to get rescheduled to handle task_work, it's fine to defer this
to when we transition anyway.

For a QD=8 random read workload, this increases performance from
680K to 870K IOPS.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
engines/io_uring.c