On 7/31/23 6:53?AM, Pavel Begunkov wrote: > On 7/28/23 21:14, Keith Busch wrote: >> From: Keith Busch <kbusch@xxxxxxxxxx> >> >> Split the req initialization and link handling from the submit. This >> simplifies the submit path since everything that can fail is separate >> from it, and makes it easier to create batched submissions later. > > Keith, I don't think this prep patch does us any good, I'd rather > shove the link assembling code further out of the common path. I like > the first version more (see [1]). I'd suggest to merge it, and do > cleaning up after. > > I'll also say that IMHO the overhead is well justified. It's not only > about having multiple nvmes, the problem slows down cases mixing storage > with net and the rest of IO in a single ring. > > [1] https://lore.kernel.org/io-uring/20230504162427.1099469-1-kbusch@xxxxxxxx/ The downside of that one, to me, is that it just serializes all of it and we end up looping over the submission list twice. With alloc+init split, at least we get some locality wins by grouping the setup side of the requests. -- Jens Axboe