Le 02/09/2020 à 14:36, Christoph Hellwig a écrit :
On Wed, Sep 02, 2020 at 08:15:12AM +0200, Christophe Leroy wrote:
- return 0;
- return (size == 0 || size - 1 <= seg.seg - addr);
+ if (addr >= TASK_SIZE_MAX)
+ return false;
+ if (size == 0)
+ return false;
__access_ok() was returning true when size == 0 up to now. Any reason to
return false now ?
No, this is accidental and broken. Can you re-run your benchmark with
this fixed?
With this fix, I get
root@vgoippro:~# time dd if=/dev/zero of=/dev/null count=1M
1048576+0 records in
1048576+0 records out
536870912 bytes (512.0MB) copied, 6.776327 seconds, 75.6MB/s
real 0m 6.78s
user 0m 1.64s
sys 0m 5.13s
That's still far from the 91.7MB/s I get with 5.9-rc2, but better than
the 65.8MB/s I got yesterday with your series. Still some way to go thought.
Christophe