Re: [PATCH RFC] iov_iter: import single segments iovecs as ITER_UBUF

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/18/22 9:32 AM, Al Viro wrote:
> On Sat, Jun 18, 2022 at 04:19:24PM +0100, 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).
>>
>> And I wouldn't bet a dime on all ->sendmsg() and ->recvmsg() being
>> flavour-agnostic either...
> 
> Incidentally, what will your patch do to one-segment readv(2) from
> e.g. /proc/self/status?  Or anything else that has no ->read_iter, for
> that matter...

Yes indeed, that won't work at all... I guess this has to be up to the
caller, we can't stuff it this far down.

-- 
Jens Axboe




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux