On 6/18/22 9:19 AM, Al Viro wrote: > On Sat, Jun 18, 2022 at 08:08:08AM -0600, Jens Axboe wrote: >> Using an ITER_UBUF is more efficient than an ITER_IOV, and for the single >> segment case, there's no reason to use an ITER_IOV when an ITER_UBUF will >> do. Experimental data collected shows that ~2/3rds of iovec imports are >> single segments, from applications using readv/writev or recvmsg/sendmsg >> that are iovec based. >> >> Explicitly check for nr_segs == 1 and import those as ubuf rather than >> iovec based iterators. > > Hadn't we'd been through that before? There is infinibarf code that > assumes ITER_IOVEC for what its ->write_iter() gets (and yes, that's > the one that has ->write() with different semantics). This is why it's an RFC... Would like to do something about that! > And I wouldn't bet a dime on all ->sendmsg() and ->recvmsg() being > flavour-agnostic either... FWIW, the liburing regressions tests do have sendmsg/recvmsg and at least basic stuff works. Haven't looked at all deeper on whether this is always the case. -- Jens Axboe