[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZChBQ3EJ/VWFBnF3@ovpn-8-19.pek2.redhat.com>
Date: Sat, 1 Apr 2023 22:35:47 +0800
From: Ming Lei <ming.lei@...hat.com>
To: Jens Axboe <axboe@...nel.dk>, io-uring@...r.kernel.org,
linux-block@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, Miklos Szeredi <mszeredi@...hat.com>,
ZiyangZhang <ZiyangZhang@...ux.alibaba.com>,
Xiaoguang Wang <xiaoguang.wang@...ux.alibaba.com>,
Bernd Schubert <bschubert@....com>,
Pavel Begunkov <asml.silence@...il.com>,
Stefan Hajnoczi <stefanha@...hat.com>,
Dan Williams <dan.j.williams@...el.com>, ming.lei@...hat.com
Subject: Re: [PATCH V6 03/17] io_uring: add generic IORING_OP_FUSED_CMD
On Thu, Mar 30, 2023 at 07:36:16PM +0800, Ming Lei wrote:
> Multiple requests submitted as one whole request logically, and the 1st one
> is primary command(IORING_OP_FUSED_CMD), and the others are secondary
> requests, which number can be retrieved from primary SQE.
>
> Primary command is responsible for providing resources and submitting
> secondary requests, which depends on primary command's resources, and
> primary command won't be completed until all secondary requests are done.
>
> The provided resource has same lifetime with primary command, and it
> lifetime won't cross multiple OPs, and this way provides safe way for
> secondary OPs to use the resource.
>
> Add generic IORING_OP_FUSED_CMD for modeling this primary/secondary
> relationship among requests.
BTW, this model also solves 1:N dependency problem of io_uring.
Current io_uring can't handle this kind of dependency(1:N) efficiently,
and simply convert it into one linked list:
- N requests(1~n) depends on one request(0), and there isn't dependency among
these N requests
- current io_uring converts the dependency to linked list of (N + 1) requests
(0, 1, ...., n), in which all requests are just issued one by one from 0 to n,
inefficiently
The primary/secondary model solves it by issuing request 0 first, then issues
all other N requests concurrently.
Thanks,
Ming
Powered by blists - more mailing lists