Interoperation of copy avoidance in network and file I/O

Copy avoidance techniques for network I/O often assume that server buffers are ephemeral (i.e., are deallocated as soon as I/O processing completes). Such techniques cannot be used for file I/O, where buffers may need to be cached long-term. Mapped file I/O, however, can easily provide copy avoidance for cached server buffers. This paper demonstrates experimentally that mapped file I/O interoperates correctly with emulated copy, a previously proposed copy avoidance scheme for ephemeral server buffers. The resulting solution allows data to be passed between networks and file systems without copying and without changing existing interfaces. Greatest benefits are obtained when copying is avoided both in network and file I/O. Two new optimizations are contributed: header patching, for stripping packet headers and restoring page alignment without hardware support; and user-directed page swapping, for passing data between regions without copying. These optimizations are useful also for network I/O with operating system bypass or with noncopy semantics.

[1]  Joseph Pasquale,et al.  Container shipping: operating system support for I/O-intensive applications , 1994, Computer.

[2]  Larry L. Peterson,et al.  Fbufs: a high-bandwidth cross-domain transfer facility , 1994, SOSP '93.

[3]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, ASPLOS 1987.

[4]  José Carlos Brustoloni,et al.  Copy emulation in checksummed, multiple-packet communication , 1997, Proceedings of INFOCOM '97.

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Kai Li,et al.  Retrospective: virtual memory mapped network interface for the SHRIMP multicomputer , 1994, ISCA '98.

[7]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[8]  José Carlos Brustoloni,et al.  Effects of buffering semantics on I/O performance , 1996, OSDI '96.

[9]  Brian Zill,et al.  Software support for outboard buffering and checksumming , 1995, SIGCOMM '95.

[10]  Todd C. Mowry,et al.  Automatic compiler-inserted I/O prefetching for out-of-core applications , 1996, OSDI '96.

[11]  Robert Grimm,et al.  Application performance and flexibility on exokernel systems , 1997, SOSP.

[12]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[13]  Michael Stumm,et al.  The Alloc Stream Facility: a redesign of application-level stream I/O , 1994, Computer.

[14]  Dawson R. Engler,et al.  Server operating systems , 1996, EW 7.

[15]  Willy Zwaenepoel,et al.  Extensible kernels are leading OS research astray , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[16]  Milon Mackey,et al.  An implementation of the Hamlyn sender-managed interface architecture , 1996, OSDI '96.