>> Assuming that I got that right, that means that the pdu information >> doesn't actually go all the way to the end of the sqe, which currently >> is just a bunch of padding. Was that intentional, or does this mean >> that io_uring_pdu could actually be 8 bytes longer? > > Also correct. The reason is actually kind of stupid, and I think we > should just fix that up. struct io_uring_cmd should fit within the first > cacheline of io_kiocb, to avoid bloating that one. But with the members > in there, it ends up being 8 bytes too big, if we grab those 8 bytes. > What I think we should do is get rid of ->done, and just have drivers > call io_uring_cmd_done() instead. We can provide an empty hook for that. > Then we can reclaim the 8 bytes, and grow the io_uring_cmd to 56 bytes. Pushed out that version: https://git.kernel.dk/cgit/linux-block/log/?h=io_uring-fops.v2 which gives you the full 56 bytes for the payload command. -- Jens Axboe