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

Reply via email to