On 1/11/19 11:19 AM, Martin K. Petersen wrote: > > Jens, > >> +struct io_uring_sqe { >> + __u8 opcode; >> + __u8 flags; >> + __u16 ioprio; >> + __s32 fd; >> + __u64 off; >> + union { >> + void *addr; >> + __u64 __pad; >> + }; >> + __u32 len; >> + union { >> + __kernel_rwf_t rw_flags; >> + __u32 __resv; >> + }; >> +}; > > A bit tongue in cheek and yet somewhat serious: While I'm super excited > about the 4 x 64 bitness of the sqe, where does the integrity buffer go? > Or the 128-bit KV store key. How do we extend this interface beyond the > flags? For integrity buffers, how about we stash them on the side? The newer series has an extra system call, io_uring_register(), which is currently used for registering files and buffers for IO on the side. You could trivially tie an integrity buffer to an sqe through that. For KV, I thint that's an actually interesting use case (sorry, integrity), and we might just want to bite the bullet and extend the sqe to full 64 bytes. We're currently at 48 bytes, which leaves us with 16 bytes of space for KV, and other use cases. -- Jens Axboe