From: David Howells
Sent: 15 September 2023 12:23
David Laight [off-list ref] wrote:
quoted
quoted
quoted
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)