Re: [PATCH RFC v7 06/16] fuse: {uring} Handle SQEs - register commands

Pavel Begunkov
2024-12-03T14:15:37Z

On 12/3/24 13:49, Bernd Schubert wrote:
> On 12/3/24 14:24, Pavel Begunkov wrote:
>> On 11/27/24 13:40, Bernd Schubert wrote:
>>> This adds basic support for ring SQEs (with opcode=IORING_OP_URING_CMD).
>>> For now only FUSE_URING_REQ_FETCH is handled to register queue entries.
...
>>> +    /*
>>> +     * Direction for buffer access will actually be READ and WRITE,
>>> +     * using write for the import should include READ access as well.
>>> +     */
>>> +    ret = import_iovec(WRITE, uiov, FUSE_URING_IOV_SEGS,
>>> +               FUSE_URING_IOV_SEGS, &iov, &iter);
>>
>> You're throwing away the iterator, I'd be a bit cautious about it.
>> FUSE_URING_IOV_SEGS is 2, so it should avoid ITER_UBUF, but Jens
>> can say if it's abuse of the API or not.
>>
>> Fwiw, it's not the first place I know of that just want to get
>> an iovec avoiding playing games with different iterator modes.
>
>
> Shall I create new exported function like import_iovec_from_user()
> that duplicates all the parts from __import_iovec()? I could also
> let __import_iovec() use that new function, although there will be
> less inlining with -02.

I'd say we can just leave it as is for now and deal later. That is
unless someone complains.

>>> +int fuse_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
>>> +{
>>> +    struct fuse_dev *fud;
>>> +    struct fuse_conn *fc;
>>> +    u32 cmd_op = cmd->cmd_op;
>>> +    int err;
>>> +
>>> +    /* Disabled for now, especially as teardown is not implemented
>>> yet */
>>> +    pr_info_ratelimited("fuse-io-uring is not enabled yet\n");
>>> +    return -EOPNOTSUPP;
>>
>> Do compilers give warnings about such things? Unreachable code, maybe.
>> I don't care much, but if they do to avoid breaking CONFIG_WERROR you
>> might want to do sth about it. E.g. I'd usually mark the function
>> __maybe_unused and not set it into fops until a later patch.
>
>
> I don't get any warning, but I can also do what you suggest.

Got it, no preference then.

--
Pavel Begunkov