Messages in this thread | | | From | Brad Parker <> | Subject | copy_{to,from}_user | Date | Fri, 09 Jan 2009 12:52:37 -0500 |
| |
I have a question about copy_{to,from}_user.
Most implementations I've seen do in-order copies and notice when an exception occurs and report back the progress. This is straight forward.
(but to be honest, I have suspicions about how just how accurate those reports are i.e. +/- 1-3 bytes on some architectures)
On some cpu's it is advantageous to do an out-of-order copy to take advantage of various cache fill mechanisms.
The problem is that the out-of-order copy makes it impossible to know where the exception occurred (in terms of progress).
Would it be permissible to have a version of copy_{to,from}_user which does an out-of-order copy and when an exception occurs, restarts the copy from the beginning using a simple in-order copy, to make it possible to identify where the exception occurs?
The idea is that exceptions are rare and so the performance hit of doing the "recopy" would be minimal and would provide the required accuracy.
-brad
| |