On 10/29/24 11:01 AM, Pavel Begunkov wrote: > On 10/25/24 13:22, Ming Lei wrote: >> The 1st 3 patches are cleanup, and prepare for adding sqe group. >> >> The 4th patch supports generic sqe group which is like link chain, but >> allows each sqe in group to be issued in parallel and the group shares >> same IO_LINK & IO_DRAIN boundary, so N:M dependency can be supported with >> sqe group & io link together. >> >> The 5th & 6th patches supports to lease other subsystem's kbuf to >> io_uring for use in sqe group wide. >> >> The 7th patch supports ublk zero copy based on io_uring sqe group & >> leased kbuf. >> >> Tests: >> >> 1) pass liburing test >> - make runtests >> >> 2) write/pass sqe group test case and sqe provide buffer case: >> >> https://github.com/ming1/liburing/tree/uring_group >> >> - covers related sqe flags combination and linking groups, both nop and >> one multi-destination file copy. >> >> - cover failure handling test: fail leader IO or member IO in both single >> group and linked groups, which is done in each sqe flags combination >> test >> >> - cover io_uring with leased group kbuf by adding ublk-loop-zc > > To make my position clear, I think the table approach will turn > much better API-wise if the performance suffices, and we can only know > that experimentally. I tried that idea with sockets back then, and it > was looking well. It'd be great if someone tries to implement and > compare it, though I don't believe I should be trying it, so maybe Ming > or Jens can, especially since Jens already posted a couple series for > problems standing in the way, i.e global rsrc nodes and late buffer > binding. In any case, I'm not opposing to the series if Jens decides to > merge it. With the rsrc node stuff sorted out, I was thinking last night that I should take another look at this. While that work was (mostly) done because of the lingering closes, it does nicely enable ephemeral buffers too. I'll take a stab at it... While I would love to make progress on this feature proposed in this series, it's arguably more important to do it in such a way that we can live with it, long term. -- Jens Axboe