All of lore.kernel.org
 help / color / mirror / Atom feed
* splice status
@ 2006-04-20 14:29 Jens Axboe
  2006-04-20 22:31 ` splice status - git clone failed Piet Delaney
  2006-04-20 23:00 ` splice status Christoph Hellwig
  0 siblings, 2 replies; 4+ messages in thread
From: Jens Axboe @ 2006-04-20 14:29 UTC (permalink / raw)
  To: linux-kernel

Hi,

Since a lot of splice/tee stuff has been merged, I thought I'd post a
little status report and other potentially useful info.

- splice interfaces should be stable now, I don't envision any further
  changes to the ->splice_read or ->splice_write file_operations hooks
  or the splice syscall. splice now accepts an input or output offset
  like sendfile(), so it doesn't have to rely on ->f_pos in the file
  structure.

- Ditto for the sys_tee syscall.

- sendfile() will be replaced with splice(). sys_sendfile will remain of
  course, this is only an internal thing. The current do_splice_direct()
  is a sendfile() helper. The splice branch in the block git repo has
  a patch to remove generic_file_sendfile() and all it's users by
  converting them to ->splice_read(). There's also a patch there that
  fixes up loop. The only remaining users of the file_operations
  .sendfile hook are nfds/shmem/ext2-xip/relay. That still needs doing.
  The current plan is to merge this stuff post 2.6.17.

I have a little collection of splice test tools that people may find
useful to play with this stuff. It's in a git repo here:

        git://brick.kernel.dk/data/git/splice.git

and snapshots are generated every hour on changes and can be fetched
from

        http://brick.kernel.dk/snaps/

There are tools there to test both splice and tee, a little README
explains the basic principle of them. I'd appreciate people testing and
playing with these tools, just in case we still have some bugs lurking.

Finally, known bugs:

- Some smallish splice reads are buggy. Patch is in splice branch and
  will hopefully be merged whenever Linus gets in front of his computer.

- The ->splice_pipe cache needs to be initialized to NULL on forks. Only
  affects do_splice_direct() usage, so not a problem in current kernels.
  Patch also Linus bound today.


-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: splice status - git clone failed.
  2006-04-20 14:29 splice status Jens Axboe
@ 2006-04-20 22:31 ` Piet Delaney
  2006-04-21  6:49   ` Jens Axboe
  2006-04-20 23:00 ` splice status Christoph Hellwig
  1 sibling, 1 reply; 4+ messages in thread
From: Piet Delaney @ 2006-04-20 22:31 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Piet Delaney, linux-kernel

On Thu, 2006-04-20 at 16:29 +0200, Jens Axboe wrote:
> git://brick.kernel.dk/data/git/splice.git

I just installed the latest git (20-Apr-2006) and tried
to clone your example and got an EOF. Any suggestions?
-------------------------------------------------------
/nethome/piet/src/splice$ git clone
git://brick.kernel.dk/data/git/splice.git
fatal: unexpected EOF
fetch-pack from 'git://brick.kernel.dk/data/git/splice.git' failed.
------------------------------------------------------

The shapshot is fine.

-- 
---
piet@bluelane.com


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: splice status
  2006-04-20 14:29 splice status Jens Axboe
  2006-04-20 22:31 ` splice status - git clone failed Piet Delaney
@ 2006-04-20 23:00 ` Christoph Hellwig
  1 sibling, 0 replies; 4+ messages in thread
From: Christoph Hellwig @ 2006-04-20 23:00 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

On Thu, Apr 20, 2006 at 04:29:03PM +0200, Jens Axboe wrote:
>   converting them to ->splice_read(). There's also a patch there that
>   fixes up loop.

It actuaklly breaks loop in various setup.  You now directly call
do_generic_file_read which is just a library function for filesystems.
For example xfs or ocfs actually do need additional locking and/or other
bits before calling it.  So this absolutely has to go through a file
operation.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: splice status - git clone failed.
  2006-04-20 22:31 ` splice status - git clone failed Piet Delaney
@ 2006-04-21  6:49   ` Jens Axboe
  0 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2006-04-21  6:49 UTC (permalink / raw)
  To: Piet Delaney; +Cc: linux-kernel

On Thu, Apr 20 2006, Piet Delaney wrote:
> On Thu, 2006-04-20 at 16:29 +0200, Jens Axboe wrote:
> > git://brick.kernel.dk/data/git/splice.git
> 
> I just installed the latest git (20-Apr-2006) and tried
> to clone your example and got an EOF. Any suggestions?
> -------------------------------------------------------
> /nethome/piet/src/splice$ git clone
> git://brick.kernel.dk/data/git/splice.git
> fatal: unexpected EOF
> fetch-pack from 'git://brick.kernel.dk/data/git/splice.git' failed.
> ------------------------------------------------------

Oh, new directory and I forgot to kick the git-daemon. It should work
now.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-04-21  6:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-20 14:29 splice status Jens Axboe
2006-04-20 22:31 ` splice status - git clone failed Piet Delaney
2006-04-21  6:49   ` Jens Axboe
2006-04-20 23:00 ` splice status Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.