http://linux.die.net/man/2/splice
http://linux.die.net/man/2/vmsplice
http://www.scribd.com/doc/4006475/Splice-Tee-VMsplice-zero-copy-in-Linux
An Evaluation of TCP Splice Benefits in Web Proxy Servers
020507, Marcel-Catalin Rosu, Daniela Rosu
http://www2002.org/CDROM/refereed/627/
030101, Dragan Stancevic
Zero Copy I: User-Mode Perspective
http://www.linuxjournal.com/article/6345
050115, Linus Torvalds
sys_splice()
Re: Make pipe data structure be a circular list of pages, rather
http://lwn.net/Articles/119680/
060403, corbet
Two new system calls: splice() and sync_file_range()
http://lwn.net/Articles/178199/
060411, corbet
tee() with your splice()?
http://lwn.net/Articles/179492/
060420, Jens Axboe <axboe-at-suse.de>
splice status
http://lwn.net/Articles/181170/
Linux: Explaining splice() and tee()
060421 Jeremy
http://kerneltrap.org/node/6505.
Splice tools
http://brick.kernel.dk/snaps/
http://brick.kernel.dk/snaps/splice-git-latest.tar.gz
060920,Ashwini Kulkarni
TCP socket splice
http://lkml.org/lkml/2006/9/20/272
061116, Jim Schutt
splice/vmsplice performance test results
http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-11/msg05074.html
061221, saeed bishara
using splice/vmsplice to improve file receive performance
->2006 Dec
http://readlist.com/lists/vger.kernel.org/linux-kernel/58/290439.html
2007 Jan ->
http://readlist.com/lists/vger.kernel.org/linux-kernel/58/292744.html
easier to read
->2006 Dec
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0612.2/1630.html
2007 Jan ->
http://www.uwsg.iu.edu/hypermail/linux/kernel/0701.0/0719.html
There is no output from console, but traffic can be observed from lo. I got 96MiB/s on my Acer Aspire4720Z.
I added a simple splice-fromnet example in the splice git repo, see if
you can repeat your results with that. Doing:
# ./splice-fromnet-g2001 | ./splice-out -m /dev/null
and
# cat /dev/zero | netcat localhost 2001
gets me about 490MiB/sec, using a recv/write loop is around 413MiB/sec.
Not migrating pages gets me around 422MiB/sec.
This test is ok, too. The file g is generated and filled with the content of input user space memory data.
It works for me, with most pages. Using the vmsplice/splice-out from the
splice tools, doing
$ ./vmsplice -g | ./splice-out -m g
about half of the pages have count==1 and the steal suceeds.
080616
socket splice size limit
http://kerneltrap.org/node/16297
(no replies)
沒有留言:
張貼留言