Linux-Specific I/O Optimizations

Linux 2.6.17 (but the concepts were refined and interfaces altered in 2.6.18+) implemented a few new system calls for zero-copy I/O operations involving pipes: splice, tee and vmsplice

  • splice copies an user-specified amount data from a pipe into another pipe

  • tee is like splice but doesn't consume data from the input, and can be thus invoked multiple times on the same pipe

  • vmsplice copies data from an user-specified memory region into a pipe

Those might be useful in different cases: respectively disk cache hit, cacheable miss and (probably) error pages. We need to verify that the semantics are right, and what kind of compromises are required to implement them

Resources:

Discussion

DevelopmentIdeas/LinuxOptimizedIO (last edited 2008-05-18 19:39:00 by localhost)