From: David Howells > Sent: 15 September 2023 12:23 > > David Laight <David.Laight@xxxxxxxxxx> wrote: > > > > > Some measurements can be made using readv() and writev() > > > > on /dev/zero and /dev/null. > > > > > > Forget /dev/null; that doesn't actually engage any iteration code. The same > > > for writing to /dev/zero. Reading from /dev/zero does its own iteration thing > > > rather than using iterate_and_advance(), presumably because it checks for > > > signals and resched. > > > > Using /dev/null does exercise the 'copy iov from user' code. > > Ummm.... Not really: I was thinking of import_iovec() - or whatever its current name is. That really needs a single structure that contains the iov_iter and the cache[] (which the caller pretty much always allocates in the same place). Fiddling with that is ok until you find what io_uring does. Then it all gets entirely horrid. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)