[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.1005190736370.23538@i5.linux-foundation.org>
Date: Wed, 19 May 2010 07:39:11 -0700 (PDT)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Nick Piggin <npiggin@...e.de>
cc: Steven Rostedt <rostedt@...dmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Peter Zijlstra <peterz@...radead.org>,
Frederic Weisbecker <fweisbec@...il.com>,
Pierre Tardy <tardyp@...il.com>, Ingo Molnar <mingo@...e.hu>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Tom Zanussi <tzanussi@...il.com>,
Paul Mackerras <paulus@...ba.org>,
linux-kernel@...r.kernel.org, arjan@...radead.org,
ziga.mahkovec@...il.com, davem <davem@...emloft.net>,
linux-mm@...ck.org, Andrew Morton <akpm@...ux-foundation.org>,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
Christoph Lameter <cl@...ux-foundation.org>,
Tejun Heo <tj@...nel.org>, Jens Axboe <jens.axboe@...cle.com>
Subject: Re: Unexpected splice "always copy" behavior observed
On Wed, 19 May 2010, Nick Piggin wrote:
>
> We can possibly do an attempt to invalidate existing pagecache and
> then try to install the new page.
Yes, but that's going to be rather hairier. We need to make sure that the
filesystem doesn't have some kind of dirty pointers to the old page etc.
Although I guess that should always show up in the page counters, so I
guess we can always handle the case of page_count() being 1 (only page
cache) and the page being unlocked.
So I'd much rather just handle the "append to the end".
The real limitation is likely always going to be the fact that it has to
be page-aligned and a full page. For a lot of splice inputs, that simply
won't be the case, and you'll end up copying for alignment reasons anyway.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists