Re: [patch 0/3] make splice more generic

From: Jens Axboe
Date: Mon May 11 2009 - 08:13:02 EST


On Thu, May 07 2009, Miklos Szeredi wrote:
> This series makes splice(2) work in more cases:
>
> - pipe to pipe splicing (zero copy)
> - fallback splice_read which uses readv()
> - fallback splice_write which uses writev()
>
> Just after cleaning up my patches after a vacation I found Max
> Kellermann's patch on LKML implementing the first part. I'll still
> post mine, because it's slightly simpler (no ref + unref on the buffer
> if not necessary).

I have applied all three, thanks! However, I think we should be able to
pass in whether or not this is a strict splice or not. Falling back to
readv/writev is a good thing as it may help get the interface adopted
more widely, but I can also easily imagine cases where you'd want to
make sure that splice actually works without copies. It may even just be
for users to retry with alternative code paths, instead of proceeding
with the splice. SPLICE_F_MOVE is a soft flag in that it will move if it
can, but not fail if it can't. Perhaps we should add a flag that does
pass back an error if we can't just move pages around, SPLICE_F_STRICT
or something like that.

--
Jens Axboe

--
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/