Forum: Ruby io_splice 4.2.0 - zero-copy pipe I/O for Linux and Ruby

Posted by Eric Wong (Guest)
on 2013-01-19 09:29
(Received via mailing list)
The splice family of Linux system calls can transfer data between file
descriptors without the need to copy data into userspace.  Instead of a
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
buffer.

* http://bogomips.org/ruby_io_splice/
* ruby.io.splice@librelist.org
* git://bogomips.org/ruby_io_splice.git
* http://bogomips.org/ruby_io_splice/NEWS.atom.xml

Changes:

We now limit maximum splice length to (1<<30) to avoid EINVAL
errors on 64-bit hosts.

vmsplice no longer raises Errno::EFAULT optimizations in newer
GCC (not that I've found a good use for vmsplice at all with
Ruby...)

There are several other small cleanups.

Eric Wong (6):
      copy_stream: small cleanup for pipe splicing
      limit maximum splice length to 1 << 30
      avoid uname() for pipe size modification checks
      doc: s/librelist.com/librelist.org/
      vmsplice: avoid referencing invalid stack address for strings
      vmsplice: more consistent fileno retry handling
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.