Experimental Patches Allow For New Ioctls To Be Built Over IO_uring
The idea of supporting kernel ioctls over IO_uring has been brought up in the past and today lead IO_uring developer Jens Axboe sent out his initial patches. These initial patches are considered experimental and sent out as "request for comments" - they provide the infrastructure to provide a file private command type with IO_uring handling the passing of the arbitrary data.
Along with the proposed IO_uring infrastructure Axboe provided example implementations of raw block and network commands over IO_uring, BLKBSZGET through IORING_OP_URING_CMD and then TCP/UDP/RAW IPv4/IPv6, respectively. He further added, "This is very much sent out for comments/review of the concept itself. There are a host of things that could be implemented with this, like raw device access, new APIs (network zero copy additions), etc."
Finally got around to posting the "async ioctl" over io_uring support. Very much an RFC right now, but I think the approach has a lot of potential as a performant way to add new APIs or "bypass" parts of the stack.https://t.co/R9voIg2ma9
— Jens Axboe (@axboe) January 27, 2021
For now this very tentative work can be found within the file_operations based io_uring commands patch series.