All of lore.kernel.org
 help / color / mirror / Atom feed
* Splice status
@ 2010-07-05  9:26 Ofer Heifetz
  2010-07-05  9:59 ` Changli Gao
  0 siblings, 1 reply; 25+ messages in thread
From: Ofer Heifetz @ 2010-07-05  9:26 UTC (permalink / raw)
  To: netdev

Hi

I have been trying to test splice on kernel 2.6.35_4 (x86) from Samba (v3.4.7) but could not copy more than ~60MB to the Samba server share.

Strace shows that the splice got stuck in blocking mode on the splice call from socket to pipe.

Has anyone managed to get splice from socket to fd work for large files (up to 4G file size) ?

-Ofer

^ permalink raw reply	[flat|nested] 25+ messages in thread
* splice status
@ 2006-04-20 14:29 Jens Axboe
  2006-04-20 23:00 ` Christoph Hellwig
  0 siblings, 1 reply; 25+ 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] 25+ messages in thread

end of thread, other threads:[~2010-07-26 20:50 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-05  9:26 Splice status Ofer Heifetz
2010-07-05  9:59 ` Changli Gao
2010-07-05 10:52   ` Ofer Heifetz
2010-07-05 12:08     ` Changli Gao
2010-07-05 12:50     ` Eric Dumazet
2010-07-05 13:47       ` Ofer Heifetz
2010-07-05 15:34         ` Eric Dumazet
2010-07-06  2:01       ` Changli Gao
2010-07-06  2:36         ` Ofer Heifetz
2010-07-06  3:56         ` Eric Dumazet
2010-07-11 13:08           ` Changli Gao
2010-07-13 11:41             ` Ofer Heifetz
2010-07-13 12:32               ` Changli Gao
2010-07-13 12:42                 ` Ofer Heifetz
2010-07-13 13:58                   ` Changli Gao
2010-07-13 14:40                     ` Ofer Heifetz
2010-07-13 14:11               ` Eric Dumazet
2010-07-14 15:08                 ` Ofer Heifetz
2010-07-15  3:47                 ` Ofer Heifetz
2010-07-25 14:47                 ` Ofer Heifetz
2010-07-26  7:41                   ` Changli Gao
2010-07-26 20:37                   ` Jarek Poplawski
2010-07-26 20:50                     ` Eric Dumazet
  -- strict thread matches above, loose matches on Subject: below --
2006-04-20 14:29 splice status Jens Axboe
2006-04-20 23:00 ` 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.