Unfortunately, only ideas, no patches. But at least the first seems very
easy.
- IORING_OP_MEMCPY_IMMEDIATE - copy some payload included in the op
itself (1-8 bytes) to a user memory location specified by the op.
Linked to another op, this can generate an in-memory notification useful
for busy-waiters or the UMWAIT instruction
This would be useful for Seastar, which looks at a timer-managed memory
location to check when to break computation loops.
- IORING_OP_MEMCPY - asynchronously copy memory
Some CPUs include a DMA engine, and io_uring is a perfect interface to
exercise it. It may be difficult to find space for two iovecs though.