Re: Syslets, Threadlets, generic AIO support, v6

From: Linus Torvalds
Date: Wed May 30 2007 - 16:36:25 EST




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.

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/