From: Jens Axboe <axboe@kernel.dk>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Subject: Re: [PATCH] io_uring: add support for IORING_REGISTER_FILES_UPDATE
Date: Fri, 4 Oct 2019 09:45:40 -0600 [thread overview]
Message-ID: <bbf022a4-9091-1e65-8516-aab39942e958@kernel.dk> (raw)
In-Reply-To: <x49d0fcmsn8.fsf@segfault.boston.devel.redhat.com>
On 10/4/19 9:34 AM, Jeff Moyer wrote:
> Jens Axboe <axboe@kernel.dk> writes:
>
>> Allows the application to remove/replace/add files to/from a file set.
>> Passes in a struct:
>>
>> struct io_uring_files_update {
>> __u32 offset;
>> __s32 *fds;
>> };
>>
>> that holds an array of fds, size of array passed in through the usual
>> nr_args part of the io_uring_register() system call. The logic is as
>> follows:
>>
>> 1) If ->fds[i] is -1, the existing file at i + ->offset is removed from
>> the set.
>> 2) If ->fds[i] is a valid fd, the existing file at i + ->offset is
>> replaced with ->fds[i].
>>
>> For case #2, is the existing file is currently empty (fd == -1), the
>> new fd is simply added to the array.
>
> If I'm reading this (and the code) right, that means you can't add files
> to a set. Wouldn't that be a useful thing to do, instead of just
> replacing existing ones?
You can add files to a set, you just can't grow a set beyond the size
you originally registered. I actually forgot to post the pre-patch for
this, which is:
http://git.kernel.dk/cgit/linux-block/commit/?h=for-5.5/io_uring&id=fb3e60f87aa43f4f047f01243d6be54dadd9d67a
This allows registering -1 as the fd, so you could register 10 files,
but an array of size 500 (for example), and the last 490 fds are just
-1. Then you can use the IORING_REGISTER_FILES_UPDATE to replace those
empty fds with real files later on.
> Can you post the man page update along with this?
Yes, I'll write the documentation too, just wanted consensus on the
approach before I wrote up documentation.
--
Jens Axboe
next prev parent reply other threads:[~2019-10-04 15:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-04 14:52 [PATCH] io_uring: add support for IORING_REGISTER_FILES_UPDATE Jens Axboe
2019-10-04 15:34 ` Jeff Moyer
2019-10-04 15:45 ` Jens Axboe [this message]
2019-10-04 16:03 ` Jeff Moyer
2019-10-04 16:11 ` Jens Axboe
2019-10-04 16:17 ` Jeff Moyer
2019-10-04 16:19 ` Jens Axboe
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=bbf022a4-9091-1e65-8516-aab39942e958@kernel.dk \
--to=axboe@kernel.dk \
--cc=jmoyer@redhat.com \
--cc=linux-block@vger.kernel.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.