On 7/11/22 11:00 AM, Sagi Grimberg wrote: > >> Use the leftover space to carve 'next' field that enables linking of >> io_uring_cmd structs. Also introduce a list head and few helpers. >> >> This is in preparation to support nvme-mulitpath, allowing multiple >> uring passthrough commands to be queued. >> >> Signed-off-by: Kanchan Joshi <joshi.k@xxxxxxxxxxx> >> Signed-off-by: Anuj Gupta <anuj20.g@xxxxxxxxxxx> >> --- >> include/linux/io_uring.h | 38 ++++++++++++++++++++++++++++++++++++-- >> 1 file changed, 36 insertions(+), 2 deletions(-) >> >> diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h >> index 54063d67506b..d734599cbcd7 100644 >> --- a/include/linux/io_uring.h >> +++ b/include/linux/io_uring.h >> @@ -22,9 +22,14 @@ struct io_uring_cmd { >> const void *cmd; >> /* callback to defer completions to task context */ >> void (*task_work_cb)(struct io_uring_cmd *cmd); >> + struct io_uring_cmd *next; >> u32 cmd_op; >> - u32 pad; >> - u8 pdu[32]; /* available inline for free use */ >> + u8 pdu[28]; /* available inline for free use */ >> +}; > > I think io_uring_cmd will at some point become two cachelines and may > not be worth the effort to limit a pdu to 28 bytes... -- Jens Axboe