CMU-CS-97-176
Computer Science Department
School of Computer Science, Carnegie Mellon University



CMU-CS-97-176

Effects of Data Passing Semantics and Operating Systems Structure on Network I/O Performance

Jose' Carlos Brustoloni

September 1997

Ph.D. Thesis

CMU-CS-97-176.ps
CMU-CS-97-176.pdf


Keywords: I/O, networking, copy avoidance, virtual memory, data passing semantics, APIs, operating system structure, network adapters, protocol processing


Elimination of data and control passing overheads in I/O has been a long-sought goal. Researchers have often proposed changing the semantics of I/O data passing, so as to make copying unnecessary, or the structure of the operating system, so as to reduce or eliminate data and control passing. However, most such changes are incompatible with existing applications and therefore have not been adopted in conventional systems. My thesis is that, in network I/O, optimizations that preserve data passing semantics and system structure can give end-to-end improvements competitive with those of data and control passing optimizations that change semantics or structure. Moreover, current technological trends tend to reduce differences in such improvements.

To demonstrate the thesis, I introduce new models of I/O organization, optimization, and data passing, emphasizing structure and compatibility rather than implementation. I review previous network I/O optimizations and propose many new ones, including emulated copy, for data passing without copying but with copy semantics between application and system buffers, and I/O-oriented IPC, for efficient data passing to and from user-level server buffers. I examine in detail network adapter requirements for copy avoidance. I describe the implementation of the different optimizations in Genie, a new I/O framework.

Using Genie, I experimentally compare the optimizations on a variety of platforms and with different levels of hardware support. The experiments confirm the thesis, showing that: (1) Emulated copy performs competitively with data passing schemes with move or share semantics; (2) Emulated copy performs competitively with data and control passing optimizations enabled by extensible kernels; and (3) I/O-oriented IPC gives user-level I/O servers performance approaching that of kernel-level ones. In all tests, network I/O performance was determined primarily by limitations of the physical I/O subsystem and presence or absence of data copying, and not by semantics or structure of the operating system. Moreover, end-to-end differences among optimizations varied inversely to the processor's SPECint95 benchmark.

The experiments also demonstrate that emulated copy interoperates efficiently with mapped file I/O, allowing applications to pass data without copying between networks and file systems.

198 pages


Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by reports@cs.cmu.edu