Re: Unexpected splice "always copy" behavior observed

From: Miklos Szeredi
Date: Wed May 19 2010 - 11:57:08 EST


On Wed, 19 May 2010, Linus Torvalds wrote:
> On Wed, 19 May 2010, Miklos Szeredi wrote:
> >
> > Another limitation I found while splicing from one file to another is
> > that stealing from the source file's page cache does not always
> > succeed. This turned out to be because of a reference from the lru
> > cache for freshly read pages. I'm not sure how this could be fixed.
>
> It should be fixed by saying "you can't always just move the page".
>
> Copying is not evil. Complexity to avoid copies is evil.

And predictability is good. The thing I don't like about the above is
that it makes it totally unpredictable which pages will get moved, if
any.

Another related thing: if splicing from a file knowing that it will
need to be stolen, then it makes zero sense to first insert the pages
into the page cache then remove them shortly to be inserted into
another file's cache. So we could have a flag saying "don't cache
newly read pages, just put them in the pipe buffer", which would solve
the above problem as well as speeding up the operation.

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