linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Nick Piggin <npiggin@suse.de>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	peterz@infradead.org, fweisbec@gmail.com, tardyp@gmail.com,
	mingo@elte.hu, acme@redhat.com, tzanussi@gmail.com,
	paulus@samba.org, linux-kernel@vger.kernel.org,
	arjan@infradead.org, ziga.mahkovec@gmail.com,
	davem@davemloft.net, linux-mm@kvack.org,
	akpm@linux-foundation.org, kosaki.motohiro@jp.fujitsu.com,
	cl@linux-foundation.org, tj@kernel.org, jens.axboe@oracle.com
Subject: Re: Unexpected splice "always copy" behavior observed
Date: Wed, 19 May 2010 15:14:39 -0400	[thread overview]
Message-ID: <20100519191439.GA2845@Krystal> (raw)
In-Reply-To: <20100519162729.GE2516@laptop>

* Nick Piggin (npiggin@suse.de) wrote:
> On Wed, May 19, 2010 at 11:57:32AM -0400, Mathieu Desnoyers wrote:
> > * Steven Rostedt (rostedt@goodmis.org) wrote:
> > > On Wed, 2010-05-19 at 17:33 +0200, Miklos Szeredi wrote:
> > > > On Wed, 19 May 2010, Linus Torvalds wrote:
> > > > > Btw, since you apparently have a real case - is the "splice to file" 
> > > > > always just an append? IOW, if I'm not right in assuming that the only 
> > > > > sane thing people would reasonable care about is "append to a file", then 
> > > > > holler now.
> > > > 
> > > > Virtual machines might reasonably need this for splicing to a disk
> > > > image.
> > > 
> > > This comes down to balancing speed and complexity. Perhaps a copy is
> > > fine in this case.
> > > 
> > > I'm concerned about high speed tracing, where we are always just taking
> > > pages from the trace ring buffer and appending them to a file or sending
> > > them off to the network. The slower this is, the more likely you will
> > > lose events.
> > > 
> > > If the "move only on append to file" is easy to implement, I would
> > > really like to see that happen. The speed of splicing a disk image for a
> > > virtual machine only impacts the patience of the user. The speed of
> > > splicing tracing output, impacts how much you can trace without losing
> > > events.
> > 
> > I'm with Steven here. I only care about appending full pages at the end of a
> > file. If possible, I'd also like to steal back the pages after waiting for the
> > writeback I/O to complete so we can put them back in the ring buffer without
> > stressing the page cache and the page allocator needlessly.
> 
> Got to think about complexity and how much is really worth trying to
> speed up strange cases. The page allocator is the generic "pipe" in
> the kernel to move pages between subsystems when they become unused :)
> 
> The page cache can be directed to be written out and discarded with
> fadvise and such.

Good point. This discard flag might do the trick and let us keep things simple.
The major concern here is to keep the page cache disturbance relatively low.
Which of new page allocation or stealing back the page has the lowest overhead
would have to be determined with benchmarks.

So I would tend to simply use this discard fadvise with new page allocation for
now.

> 
> You might also consider using direct IO.

Maybe. I'm unsure about what it implies in the splice() context though.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-05-19 19:14 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-18 15:34 Unexpected splice "always copy" behavior observed Mathieu Desnoyers
2010-05-18 15:51 ` Nick Piggin
2010-05-18 15:56   ` Christoph Lameter
2010-05-18 16:00     ` Nick Piggin
2010-05-18 16:13       ` Nick Piggin
2010-05-18 15:53 ` Steven Rostedt
2010-05-18 16:10   ` Steven Rostedt
2010-05-18 16:25     ` Linus Torvalds
2010-05-19  6:31       ` Nick Piggin
2010-05-19 14:39         ` Linus Torvalds
2010-05-19 14:56           ` Steven Rostedt
2010-05-19 14:59             ` Linus Torvalds
2010-05-19 15:12               ` Steven Rostedt
2010-05-19 15:51                 ` Mathieu Desnoyers
2010-05-19 15:33               ` Miklos Szeredi
2010-05-19 15:45                 ` Steven Rostedt
2010-05-19 15:55                   ` Nick Piggin
2010-05-19 16:01                     ` Mathieu Desnoyers
2010-05-19 16:36                     ` Steven Rostedt
2010-05-19 15:57                   ` Mathieu Desnoyers
2010-05-19 16:27                     ` Nick Piggin
2010-05-19 19:14                       ` Mathieu Desnoyers [this message]
2010-05-19 19:31                         ` Linus Torvalds
2010-05-19 21:49                           ` Mathieu Desnoyers
2010-05-20  0:04                             ` Linus Torvalds
2010-05-20  1:56                               ` Mathieu Desnoyers
2010-05-20 14:18                                 ` Linus Torvalds
2010-05-19 20:59               ` Rick Sherm
2010-05-19 15:17           ` Nick Piggin
2010-05-19 15:30             ` Linus Torvalds
2010-05-19 15:44               ` Nick Piggin
2010-05-19 15:28           ` Miklos Szeredi
2010-05-19 15:32             ` Linus Torvalds
2010-05-19 15:56               ` Miklos Szeredi
2010-05-19 16:01                 ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100519191439.GA2845@Krystal \
    --to=mathieu.desnoyers@efficios.com \
    --cc=acme@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=cl@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=fweisbec@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=miklos@szeredi.hu \
    --cc=mingo@elte.hu \
    --cc=npiggin@suse.de \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tardyp@gmail.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tzanussi@gmail.com \
    --cc=ziga.mahkovec@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).