David Laight David.Laight@ACULAB.COM wrote:
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