Re: [PATCH V4 00/17] io_uring/ublk: add IORING_OP_FUSED_CMD

Ming Lei
2023-03-28T03:35:33Z

On Tue, Mar 28, 2023 at 11:13:53AM +0800, Gao Xiang wrote:
>
>
> On 2023/3/28 09:16, 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)
> >
> > > larger fused ops in the future and need terminology to address
> > > "fuse{0,1,2,3}"?
> >
> > Yeah, definitely, the interface can be extended in future to support
> > multiple "slave" requests.
>
> I guess master/slave (especially now) have bad meaning to
> English-language guys so it's better to avoid it.

Absolutely no offense given English isn't my native language, so
let's move on with V5.

Thanks,
Ming