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). And I wouldn't bet a dime on all ->sendmsg() and ->recvmsg() being flavour-agnostic either...