David Laight [off-list ref] wrote:
quoted
Add kunit tests to benchmark 256MiB copies to a UBUF iterator and an IOVEC
iterator. This attaches a userspace VM with a mapped file in it
temporarily to the test thread.
Isn't that going to be completely dominated by the cache fills
from memory?
Yes... but it should be consistent in the amount of time that consumes since
no device drivers are involved. I can try adding the same folio to the
anon_file multiple times - it might work especially if I don't put the pages
on the LRU (if that's even possible) - but I wanted separate pages for the
extraction test.
I'd have thought you'd need to use something with a lot of
small fragments so that the iteration code dominates the copy.
That would actually be a separate benchmark case which I should try also.
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.
David