You can't buy a computer with sufficient sustained memory performance. In
the PC world especially memory performance is comical.
I don't want to make an extra kernel->user copy for two reasons. Firstly
it trashes my cache completely. The cache is the only thing saving my processor
from the slow memory bus its attached too. Secondly I don't want to waste
the cycles doing the copy.
The raw disk device stuff is actually the least interesting bit to me. I need
large amounts of buffer space for video work. I can either lock the user pages
and blast the data into them (little cache pollution almost no overhead) or
I can allocate big kernel buffers (swap, swap, swap), blast the data into them
and then map those pages into the user program or copy them.
If I copy them Im already dropping frames, if I map them into user space
I'm semi permanently committing megabytes of unswappable resource to processes.
The same reality applies to a kernel sendfile that knows about this stuff. It
will have to allocate huge kernel buffers and then commit them somewhere with
undefined completion time since the data rate of a network is externally
governed.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/