On Wed, Nov 20, 2024 at 09:35:17AM -0800, Darrick J. Wong wrote: > I like willy's suggestion -- what's the difficulty in having a SQE flag > that says "...and keep going into the next SQE"? I guess that > introduces the problem that you can no longer react to the observation > of 4 new SQEs by creating 4 new contexts to process those SQEs and throw > all 4 of them at background threads, since you don't know how many IOs > are there. Which is why everyone hates the nvme fused commands with passion, and no one but vmware actually uses them, and no other fused command pair except for compare and write ever materialized. > That said, depending on the size of the PI metadata, it might be more > convenient for the app programmer to supply one pointer to a single > array of PI information for the entire IO request, packed in whatever > format the underlying device wants. > > Thinking with my xfs(progs) hat on, if we ever wanted to run xfs_buf(fer > cache) IOs through io_uring with PI metadata, we'd probably want a > vectored io submission interface (xfs_buffers can map to discontiguous > LBA ranges on disk), but we'd probably have a single memory object to > hold all the PI information. Agreed. And unless I'm misremembering something, all proposals so far had a single PI buffer for vectored read/writes.