Using splice and vmsplice with custom Embedded Linux architectures
Channel: Linux.conf.au 2011 -- Brisbane, Australia
Date: 2014-11-23

Presenter(s): John Williams
URL: http://2011.linux.conf.au/programme/schedule/view_talk/164

The splice() and vmsplice() system calls, introduced to Linux around the 2.6.18 kernel release, are intended to provide support for zero-copy file and network IO by utilising in-kernel pipe buffers as a temporary read/write buffer.  Since then, they've not received a great deal of attention.  

In this presentation, we discuss how these two under-utilised system calls may be the perfect answer to the problem of achieving good IO performance in resource constrained, custom Embedded Linux systems.  In particular, the presenter works with FPGA-based Embedded Linux systems where the designer can create arbitrary hardware architectures, yet we still want software and driver developers to use standard Linux device APIs.

The presentation will feature an overview of the splice and vmsplice kernel infrastruture, a quick introduction to FPGA-based Embedded Linux systems, and then a case-study of a recent commercial project where vmsplice + FPGA was for teh win!


http://2011.linux.conf.au/ - http://www.linux.org.au
CC BY-SA - http://creativecommons.org/licenses/by-sa/4.0/legalcode.txt