Hacker News new | ask | show | jobs
by ori_b 4433 days ago
You can do this with large reads:

     read(fd, buf, 100 megs)
can, in the kernel, do something like:

     read(fd, buf[0:first-page-boundary])
     remap(fd, buf[first-page-boundary:last-page-boundary])
     read(fd, buf[last-page-boundary:end])
There you go, zero copy reads. Or at least, minimal copy reads -- at most you will get 2 pages worth of copying.