On 09/01/2020 17:58, Mark Papadakis wrote: > Greetings, > > I ‘ve been trying to replicate the benefits provided by sendfile() using e.g O_DIRECT access, together with IOSQE_IO_LINK in SQE flags and MSG_ZEROCOPY, but it doesn’t appear to work. Other ideas didn’t work either. > > I would really appreciate a sendfile like SQE opcode, but maybe some sort of generic DMA/zero-copy based opcode based on splice semantics could be implemented, so that e.g a vmsplice() like alternative could also work. > Sounds interesting, I'll look into this. First, I want to dig a bit into kernel's zero-copy and get an idea how to cover all use cases with a single opcode, and that's probably keeping in mind p2p. The obvious nuisance from perspective is that it needs 2 fds. Any other concerns? > > (That would be the last remaining bit of functionality missing from io_uring, now that Jens has implemented support for IOSQE_ASYNC, IORING_REGISTER_EVENTFD_ASYNC and for managing epoll FDs, for enabling support for io_uring on https://github.com/phaistos-networks/TANK ). > > Thank you, > @markpapadakis > -- Pavel Begunkov