On Mon, Mar 27, 2023 at 07:29:36PM -0600, Jens Axboe wrote: > On 3/27/23 7:16 PM, Ming Lei wrote: > > Hi Dan, > > > > On Mon, Mar 27, 2023 at 05:36:33PM -0700, Dan Williams wrote: > >> Ming Lei wrote: > >>> Hello Jens, > >>> > >>> Add IORING_OP_FUSED_CMD, it is one special URING_CMD, which has to > >>> be SQE128. The 1st SQE(master) is one 64byte URING_CMD, and the 2nd > >>> 64byte SQE(slave) is another normal 64byte OP. For any OP which needs > >>> to support slave OP, io_issue_defs[op].fused_slave needs to be set as 1, > >>> and its ->issue() can retrieve/import buffer from master request's > >>> fused_cmd_kbuf. The slave OP is actually submitted from kernel, part of > >>> this idea is from Xiaoguang's ublk ebpf patchset, but this patchset > >>> submits slave OP just like normal OP issued from userspace, that said, > >>> SQE order is kept, and batching handling is done too. > >> > >> Hi Ming, > >> > >> io_uring and ublk are starting to be more on my radar these days. I > >> wanted to take a look at this series, but could not get past the > >> distracting "master"/"slave" terminology in this lead-in paragraph let > >> alone start looking at patches. > >> > >> Frankly, the description sounds more like "head"/"tail", or even > >> "fuse0"/"fuse1" because, for example, who is to say you might not have > > > > The term "master/slave" is from patches. > > > > The master command not only provides buffer for slave request, but also requires > > slave request for serving master command, and master command is always completed > > after all slave request are done. > > > > That is why it is named as master/slave. Actually Jens raised the similar concern > > and I hate the name too, but it is always hard to figure out perfect name, or > > any other name for reflecting the relation? (head/tail, fuse0/1 can't > > do that, IMO) > > Indeed. What about primary/secondary? And it'd be quite possible to have > multiple secondaries too. OK, I will take primary/secondary in V5 if no better name is suggested. Thanks, Ming