From: Hao Xu <hao.xu@linux.dev>
To: Stefan Metzmacher <metze@samba.org>, Jens Axboe <axboe@kernel.dk>,
io-uring@vger.kernel.org
Cc: asml.silence@gmail.com, haoxu.linux@gmail.com,
"Ralph Böhme" <slow@samba.org>, vl <vl@samba.org>
Subject: Re: [PATCHSET v2 0/6] Allow allocated direct descriptors
Date: Fri, 10 Jun 2022 19:06:00 +0800 [thread overview]
Message-ID: <bdd8d2b8-6ac0-5a38-6905-0b2a874c035d@linux.dev> (raw)
In-Reply-To: <c57c4231-f481-8fdf-5b97-625ada83f83a@samba.org>
Hi Stefan,
On 6/9/22 16:57, Stefan Metzmacher wrote:
>
> Hi Jens,
>
> this looks very useful, thanks!
>
> I have an additional feature request to make this even more useful...
>
> IO_OP_ACCEPT allows a fixed descriptor for the listen socket
> and then can generate a fixed descriptor for the accepted connection,
> correct?
Yes.
>
> It would be extremely useful to also allow that pattern
> for IO_OP_OPENAT[2], which currently is not able to get
> a fixed descriptor for the dirfd argument (this also applies to
> IO_OP_STATX, IO_OP_UNLINK and all others taking a dirfd).
>
> Being able use such a sequence:
>
> OPENTAT2(AT_FDCWD, "directory") => 1 (fixed)
> STATX(1 (fixed))
> FGETXATTR(1 (fixed)
> OPENAT2(1 (fixed), "file") => 2 (fixed)
> STATX(2 (fixed))
> FGETXATTR(2 (fixed))
> CLOSE(1 (fixed)
> DUP( 2 (fixed)) => per-process fd for ("file")
>
> I looked briefly how to implement that.
> But set_nameidata() takes 'int dfd' to store the value
> and it's used later somewhere deep down the stack.
> And makes it too complex for me to create patches :-(
>
Indeed.. dirfd is used in path_init() etc. For me, no idea how to tackle
it for now.We surely can register a fixed descriptor to the process
fdtable but that is against the purpose of fixed file..
> It would great if someone could have a look how to make this work.
>
>
>> Currently using direct descriptors with open or accept requires the
>> application to manage the descriptor space, picking which slot to use
>> for any given file. However, there are cases where it's useful to just
>> get a direct descriptor and not care about which value it is, instead
>> just return it like a normal open or accept would.
>>
>> This will also be useful for multishot accept support, where allocated
>> direct descriptors are a requirement to make that feature work with
>> these kinds of files.
>>
>> This adds support for allocating a new fixed descriptor. This is chosen
>> by passing in IORING_FILE_INDEX_ALLOC as the fixed slot, which is beyond
>> any valid value for the file_index.
>
> I guess that would not work for linked request, as we don't know the
> actual id before submitting the requests.
>
> Thanks!
> metze
next prev parent reply other threads:[~2022-06-10 11:06 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-09 15:50 [PATCHSET v2 0/6] Allow allocated direct descriptors Jens Axboe
2022-05-09 15:50 ` [PATCH 1/6] io_uring: track fixed files with a bitmap Jens Axboe
2022-05-09 15:50 ` [PATCH 2/6] io_uring: add basic fixed file allocator Jens Axboe
2022-05-09 15:50 ` [PATCH 3/6] io_uring: allow allocated fixed files for openat/openat2 Jens Axboe
2022-05-12 8:21 ` Hao Xu
2022-05-12 12:23 ` Jens Axboe
2022-05-13 5:28 ` Hao Xu
2022-05-13 12:25 ` Jens Axboe
2022-05-13 12:56 ` Jens Axboe
2022-05-13 4:38 ` Hao Xu
2022-05-13 12:28 ` Jens Axboe
2022-05-09 15:50 ` [PATCH 4/6] io_uring: allow allocated fixed files for accept Jens Axboe
2022-05-09 15:50 ` [PATCH 5/6] io_uring: bump max direct descriptor count to 1M Jens Axboe
2022-05-09 15:50 ` [PATCH 6/6] io_uring: add flag for allocating a fully sparse direct descriptor space Jens Axboe
2022-05-10 4:44 ` Hao Xu
2022-05-10 12:27 ` Jens Axboe
2022-05-13 10:56 ` [PATCHSET v2 0/6] Allow allocated direct descriptors Hao Xu
2022-06-09 8:57 ` Stefan Metzmacher
2022-06-10 11:06 ` Hao Xu [this message]
2022-06-10 11:28 ` Stefan Metzmacher
2022-06-10 13:04 ` Hao Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bdd8d2b8-6ac0-5a38-6905-0b2a874c035d@linux.dev \
--to=hao.xu@linux.dev \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=haoxu.linux@gmail.com \
--cc=io-uring@vger.kernel.org \
--cc=metze@samba.org \
--cc=slow@samba.org \
--cc=vl@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.