Linus Torvalds a écrit :
On Wed, 30 May 2007, Eric Dumazet wrote:
So yes, reimplement sendfile() should help to find last splice() bugs, and as
a bonus it could add non blocking disk io, (O_NONBLOCK on input file ->
socket)
Well, to get those kinds of advantages, you'd have to use splice directly,
since sendfile() hasn't supported nonblocking disk IO, and the interface
doesn't really allow for it.
sendfile() interface doesnt allow it, but if you open("somediskfile", O_RDONLY
| O_NONBLOCK), then splice() based sendfile() can perform a non blocking disk
io, (while starting an io with readahead)
I actually use this trick myself :)
(splice(disk -> pipe, NONBLOCK), splice(pipe -> worker))
non blocking disk io, + zero copy :)
In fact, since nonblocking accesses require also some *polling* method,
and we don't have that for files, I suspect the best option for those
things is to simply mix AIO and splice(). AIO tends to be the right thing
for disk waits (read: short, often cached), and if we can improve AIO
performance for the cached accesses (which is exactly what the threadlets
should hopefully allow us to do), I would seriously suggest going that
route.
But the pure "use splice to _implement_ sendfile()" thing is worth doing
for all the other reasons, even if nonblocking file access is not likely
one of them.
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
- Re: Syslets, Threadlets, generic AIO support, v6
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]