On 9/26/22 11:09 AM, Dylan Yudaken wrote: > Registering the single issuer task from the first submit adds unnecesary > complications to the API as well as the implementation. Where simply > registering it at creation should not impose any barriers to getting the > same performance wins. The only catch is users that might want to move the > ring after creation but before submission. For these users allow them to > create the ring with IORING_SETUP_R_DISABLED and then enable it on the > submission task. > > There is another problem in 6.1, with IORING_SETUP_DEFER_TASKRUN. That > would like to check the submitter_task from unlocked contexts, which would > be racy. If upfront the submitter_task is set at creation time it will > simplify the logic there and probably increase performance (though this is > unmeasured). > > Patch 1 registers the task at creation of the io_uring, this works > standalone in case you want to only merge this part for 6.0 > > Patch 2/3 cleans up the code from the old style Thanks, I like 1/3 a lot better now. Will provide applications with an easy path to use SINGLE_ISSUER, even if they currently setup the ring from a different thread/task than they end up using it from. I've updated the 6.0 and 6.1 repos to reflect this. -- Jens Axboe