From: Evgeniy Polyakov <redacted>
Date: Sun, 5 Mar 2006 04:43:25 +0300
According to investigation made for kevent based FS AIO reading,
get_user_pages() performange graph looks like sqrt() function
with plato starting on about 64-80 pages on Xeon 2.4Ghz with 1Gb of ram,
while memcopy() is linear, so it can be noticebly slower than
copy_to_user() if get_user_pages() is used aggressively, so userspace
application must reuse the same, already grabbed buffer for maximum
performance, but Intel folks did not provide theirs usage case and any
benchmarks as far as I know.
Of course, and programming the DMA controller has overhead
as well. This is why would would not use I/O AT with small
transfer sizes.