Zero-Copy TCP in Solaris
Hsiao-keng Jerry Chu
SunSoft Inc.
Abstract
This paper describes a new feature in Solaris that uses virtual memory
remapping combined with checksumming support from the networking
hardware, to eliminate data-touching overhead from the TCP/IP protocol
stack. By implementing page remapping operations at the right level of
the operating system, and caching MMU mappings to take advantage of
locality of reference, significant performance gain is attained on
certain hardware platforms. Nevertheless, the performance improvement
over CPU copying varies, depending on the host memory cache architecture,
MMU design, and application behavior. We begin by comparing different
zero-copy schemes, and explain our preference for page remapping and
copy-on-write (COW) techniques. We then describe our implementation,
and present its performance characteristics under a number of
different parameters. We conclude with ideas for future improvements.
Download the full text of this paper in
ASCII (50,623 bytes) and
POSTSCRIPT (185,727 bytes) form.
To Become a USENIX Member, please see our
Membership Information.